运算符 循环 异步提交 接收数据

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
运算符 循环 异步提交 接收数据运算符
  1. <?php
  2. /**
  3. * ; php指令分隔符
  4. * php 功能执行语句 必须以;结束
  5. * 结构定义语句
  6. *
  7. */
  8. //! PHP运算符
  9. function demo()
  10. {
  11. }
  12. class demo
  13. {
  14. }
  15. // 算数运算符 + - * / % 去余
  16. // 能被4整除但不能被100整除的都是闰年,其余的年份均为平年
  17. $year = date("Y");
  18. // echo $year;
  19. if ($year % 4 == 0 && $year % 100 !== 0) {
  20. echo "{$year}是闰年";
  21. } else {
  22. echo "{$year}是平年";
  23. }
  24. // 控制随机数的范围 0-50
  25. // echo mt_rand() % 50;
  26. echo mt_rand(0, 50);
  27. // 比较运算符 返回布尔型 用在流程控制语句
  28. var_dump(11 > 10);
  29. // 逻辑运算符 || && ! 返回布尔型 用在流程控制语句
  30. /**
  31. * || 或 两边的表达式只要一个为true 返回true
  32. *
  33. * && 且 两边的表达式全部为true 返回true
  34. *
  35. * !
  36. * */
  37. /**
  38. * = 赋值运算符
  39. * == 值比较
  40. * === 严格比较 值 类型
  41. */
  42. var_dump(1 > 0 || 4 > 5);
  43. var_dump(0 === '0');
  44. $username = 'admin';
  45. //isset检验变量是否存在
  46. if (isset($username) && $username === 'admin') {
  47. echo "欢迎管理员{$username}回来";
  48. }
  49. $email = $_GET['email'];//filter_var检测邮箱 FILTER_VALIDATE_EMAIL邮箱常量
  50. if (isset($email) && filter_var($email, FILTER_VALIDATE_EMAIL)) {
  51. echo '邮箱验证通过';
  52. } else {
  53. echo '请输入有效的邮箱';
  54. }
  55. ob_clean();
  56. //三元运算符 表达式 ? :
  57. // $pwd = sha1('wwwphpcn');//哈希运算
  58. $pwd = isset($pwd) ? $pwd : 'root';
  59. // 检测页码
  60. // $page = isset($_GET['p']) ? $_GET['p'] : 1;
  61. // ?? null合并运算符 告别isset()
  62. $page = @$_GET['p'] ?? 1;
  63. echo $page;

循环
  1. <?php
  2. // ! 循环 while
  3. $cities = ['合肥', '南京', '杭州', '苏州', '上海', '北京'];
  4. next($cities);//移动指针
  5. next($cities);
  6. next($cities);
  7. next($cities);
  8. reset($cities);//复位指针
  9. // echo current($cities);//获取数组长度
  10. // while循环 入口判断型循环
  11. // while ($city = current($cities)) {
  12. // echo $city . '<br>';
  13. // next($cities);
  14. // }
  15. // while ($city = current($cities)) :
  16. // echo $city . '<br>';
  17. // next($cities);
  18. // endwhile;
  19. // do..while出口型判断循环
  20. // $i = 0;
  21. // do {
  22. // echo $cities[$i];
  23. // $i++;
  24. // } while ($i < count($cities));
  25. // for 计数型循环
  26. // for ($i = 0; $i < count($cities); $i++) {
  27. // // break 提前结束循环
  28. // if ($i > 2) break;
  29. // echo $cities[$i];
  30. // }
  31. // continue 跳出某一轮循环 选择性输出
  32. for ($i = 0; $i < count($cities); $i++) {
  33. if ($i == 2 || $i == 3) continue;
  34. echo $cities[$i];
  35. }
  36. foreach ($cities as $k => $v) {
  37. }

在 PHP 中,有以下循环语句:
while - 只要指定条件为真,则循环代码块
do…while - 先执行一次代码块,然后只要指定条件为真则重复循环
for - 循环代码块指定次数
foreach - 遍历数组中的每个元素并循环代码块

PHP while 循环
只要指定的条件为真,while 循环就会执行代码块。

语法
while (条件为真) {
要执行的代码;
}

上例首先把变量 $x 设置为 1($x=1)。然后执行 while 循环,只要 $x 小于或等于 5。循环每运行一次,$x 将递增 1:

实例

  1. <?php
  2. $x=1;
  3. while($x<=5) {
  4. echo "这个数字是:$x <br>";
  5. $x++;
  6. }
  7. ?>

PHP do…while 循环
do…while 循环首先会执行一次代码块,然后检查条件,如果指定条件为真,则重复循环。

语法
do {
要执行的代码;
} while (条件为真);

下面的例子首先把变量 $x 设置为 1($x=1)。然后,do while 循环输出一段字符串,然后对变量 $x 递增 1。随后对条件进行检查($x 是否小于或等于 5)。只要 $x 小于或等于 5,循环将会继续运行:

实例

  1. <?php
  2. $x=1;
  3. do {
  4. echo "这个数字是:$x <br>";
  5. $x++;
  6. } while ($x<=5);
  7. ?>

请注意,do while 循环只在执行循环内的语句之后才对条件进行测试。这意味着 do while 循环至少会执行一次语句,即使条件测试在第一次就失败了。

PHP for 循环
如果您已经提前确定脚本运行的次数,可以使用 for 循环。

语法
for (init counter; test counter; increment counter) {
code to be executed;
}

参数:
init counter:初始化循环计数器的值

test counter:: 评估每个循环迭代。如果值为 TRUE,继续循环。如果它的值为 FALSE,循环结束。

increment counter:增加循环计数器的值

实例

  1. <?php
  2. for ($x=0; $x<=10; $x++) {
  3. echo "数字是:$x <br>";
  4. }
  5. ?>

PHP foreach 循环
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。

语法

  1. foreach ($array as $value) {
  2. code to be executed(执行 );
  3. }

每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。

下面的例子演示的循环将输出给定数组($colors)的值:

实例

  1. <?php
  2. $colors = array("red","green","blue","yellow");
  3. foreach ($colors as $value) {
  4. echo "$value <br>";
  5. }
  6. ?>
异步提交 login.php
  1. <!-- 引入页眉 -->
  2. <?php
  3. // 配置文件引入
  4. include __DIR__ . '/config/common.php';
  5. // 引入页眉
  6. include TMPL_PATH_PUBLIC . '/header.php';
  7. ?>
  8. <!-- 主体 -->
  9. <main>
  10. <!-- 用户登录 -->
  11. <!-- action="dologin.php" type="submit"> 此为同步提交-->
  12. <form class="login" >
  13. <table>
  14. <caption>
  15. 用户登录
  16. </caption>
  17. <tbody>
  18. <tr>
  19. <td><label for="email">邮箱:</label></td>
  20. <td><input type="email" name="email" id="email" /></td>
  21. </tr>
  22. <tr>
  23. <td><label for="password">密码:</label></td>
  24. <td><input type="password" name="password" id="password" /></td>
  25. </tr>
  26. <tr>
  27. <td colspan="2"><button onclick="doLogin(this)" type="button">登录</button></td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </form>
  32. <p>
  33. <a href="register.php">没有帐号,请先注册</a>
  34. </p>
  35. </main>
  36. <script>
  37. async function doLogin(obj){
  38. // alert('123');
  39. const email = obj.form.email.value;
  40. const password = obj.form.password.value;
  41. // console.log(password);
  42. //非空验证
  43. //
  44. if (email.length > 0 && password.length > 0) {
  45. // 异步提交 fetch API
  46. const response = await fetch('./lib/user/check.php', {
  47. // 请求方法
  48. method: 'POST',
  49. // 请求头
  50. headers: {
  51. 'Content-Type': 'application/json;charset=utf-8'
  52. },
  53. body: JSON.stringify({
  54. email,
  55. password
  56. })
  57. });
  58. // 解析数据
  59. const result = await response.json();
  60. console.log(result);
  61. } else {
  62. alert('邮箱或密码不能为空');
  63. }
  64. }
  65. </script>
  66. <!-- 引入页脚 -->
  67. <?php include TMPL_PATH_PUBLIC . '/footer.php' ?>
接收数据check.php
  1. <?php
  2. // 获取用户登录数据 不能用传统的表单格式提交 ($_POST) , json
  3. // json当成文本流原始数据来接收
  4. $json = file_get_contents('php://input');
  5. // echo $json;
  6. // $json并非php能识别的数据类型,它只是json格式的字符串而已
  7. // json_decode函数 是把json ->转换为 php.array , true: 数组 不加TRUE 就是php对象
  8. $user = json_decode($json, true);
  9. //var_dump($user);
  10. echo json_encode($user);//返回数组对象

【本文由: 建湖网页设计公司 http://www.1234xp.com/jianhu.html 欢迎留下您的宝贵建议】