Blogger Information
Blog 25
fans 1
comment 1
visits 20691
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
操作运算符及流程控制与for() while()循环--PHP中文网线上班0417
高的PHP十期培训学习笔记
Original
767 people have browsed it

1. 赋值运算符

序号 运算符 示例 描述
1 = $a = 10 将表达式的值赋给变量
2 += $a += 10 $a = $a + 10;
3 -= $a -= 10 $a = $a - 10;
4 *= $a *= 10 $a = $a * 10;
5 /= $a /= 10 $a = $a / 10;
6 %= $a %= 10 $a = $a % 10;
7 .= $a .= 'a' $a = $a . 'a';

2. 比较运算符

序号 运算符 示例 描述
1 > $a > $b 大于
2 >= $a >= $b 大于或等于
3 < $a < $b 小于
4 <= $a <= $b 小于或等于
5 == $a == $b 等于 (值相等即可)
6 === $a == $b 全等于(二边值与类型全等)
7 != $a != $b 不相等
8 !== $a !== $b 不全等
9 <=> $a <=> $b 太空船php7+
  • 比较运算符: 返回布尔值,常用于流程控制中(if/while/for...)
  • <=>: 也叫组合比较符, 例如$a <=> $b, 有三种返回结果

    ==: 只判断值是否相等, 不判断类型
    当 == 二边的类型不同时,会发生类型的自动转换
    === 全等, 不仅值要相等, 类型也要相等

  1. // 太空船 <=>
  2. var_dump(10 <=> 20);
  3. // -1 < 0, 说明 10 小于 20
  4. var_dump(10 <=> 5);
  5. // 1 > 0, 说明 10 大于 5
  6. var_dump(10 <=> 10);
  7. // 0, 说明 相等

3. 逻辑运算符

4. 三元运算符

序号 运算符 示例 描述 场景
1 ?: $a ?: $b 仅判断表达式true/false 简化双分支
2 ?? $a ?? $b 判断变量存在且不为 null 设置默认值
  1. // ? : 简化双分支if
  2. $price = 900;
  3. if ($price > 1000) echo '太贵了'; else echo '真便宜';
  4. // 条件 ? true : false
  5. echo $price > 1000 ? '太贵了' : '真便宜';
  6. echo '<hr>';
  7. // ?? null合并运算符
  8. // 设置变量默认值
  9. $password = '123abc';
  10. // 相同于 $password = isset($password) ? $password : 'root';
  11. $password = $password ?? 'root';
  12. echo $password;

流程控制

1. 分支结构

序号 类型 语法 模板语法
1 单分支 if(){...} if(): ... endif;
2 双分支 if(){...} else {...} if(): ... else: ... endif;
3 多分支 if(){...} elseif {...} else {...} if(): ... elseif: ... else: ... endif;
4 switch switch() {case: ... break...} switch(): ...endswitch;
  1. // 拼团人数打折价格
  2. // 单分支
  3. // 团购人数
  4. $renshu = 5;
  5. //实际价格
  6. $shijijiage = 2000;
  7. if ($renshu > 3) {
  8. $shijijiage *= 0.9;
  9. }
  10. echo '实际支付: ' . $shijijiage . '<br>';
  11. echo '<hr>';
  12. // 单分支模板语法
  13. $shijijiage = 2000;
  14. if ($renshu > 3) : $shijijiage *= 0.9; endif;
  15. echo '实际支付: ' . $shijijiage . '<br>';
  16. echo '<hr>';
  17. // 双分支
  18. $shijijiage = 2000;
  19. if ($renshu > 3) {
  20. $shijijiage *= 0.9;
  21. } else {
  22. $shijijiage = $shijijiage;
  23. }
  24. echo '实际支付: ' . $shijijiage . '<br>';
  25. echo '<hr>';
  26. // 双分支模板语法
  27. $renshu = 2;
  28. $shijijiage = 2000;
  29. if ($renshu > 3) :
  30. $shijijiage *= 0.9;
  31. else :
  32. $shijijiage = $shijijiage;
  33. endif;
  34. echo '实际支付: ' . $shijijiage . '<br>';
  35. echo '<hr>';
  36. // 多分支
  37. $renshu = 6;
  38. $shijijiage = 2000;
  39. if ($renshu > 5 && $renshu < 10) {
  40. $shijijiage *= 0.9;
  41. } elseif ($renshu >= 10 && $renshu < 20) {
  42. $shijijiage *= 0.8;
  43. } elseif ($renshu >= 20) {
  44. $shijijiage *= 0.7;
  45. } else {
  46. $shijijiage = $shijijiage;
  47. }
  48. echo '实际支付: ' . $shijijiage . '<br>';
  49. echo '<hr>';
  50. // 多分支模板语法
  51. $renshu = 55;
  52. $shijijiage = 2000;
  53. if ($renshu > 5 && $renshu < 10) :
  54. $shijijiage *= 0.9;
  55. elseif ($renshu >= 10 && $renshu < 20) :
  56. $shijijiage *= 0.8;
  57. elseif ($renshu >= 20) :
  58. $shijijiage *= 0.7;
  59. else :
  60. $shijijiage = $shijijiage;
  61. endif;
  62. echo '实际支付: ' . $shijijiage . '<br>';
  63. echo '<hr>';
  64. // switch: 简化多分支
  65. $renshu = 12;
  66. $shijijiage = 2000;
  67. switch (true) {
  68. case $renshu > 5 && $renshu < 10:
  69. $shijijiage *= 0.9;
  70. break;
  71. case $renshu >= 10 && $renshu < 20:
  72. $shijijiage *= 0.8;
  73. break;
  74. case $renshu >= 20:
  75. $shijijiage *= 0.7;
  76. break;
  77. default:
  78. $shijijiage = $shijijiage;
  79. }
  80. echo '实际支付: ' . $shijijiage . '<br>';
  81. echo '<hr>';
  82. // switch模板语法
  83. $renshu = 12;
  84. $shijijiage = 2000;
  85. switch (true) :
  86. case $renshu > 5 && $renshu < 10:
  87. $shijijiage *= 0.9;
  88. break;
  89. case $renshu >= 10 && $renshu < 20:
  90. $shijijiage *= 0.8;
  91. break;
  92. case $renshu >= 20:
  93. $shijijiage *= 0.7;
  94. break;
  95. default:
  96. $shijijiage = $shijijiage;
  97. endswitch;
  98. echo '实际支付: ' . $shijijiage . '<br>';
  99. echo '<hr>';
  100. // switch 更常用的场景是单值判断
  101. $renshu = 12;
  102. $shijijiage = 2000;
  103. $zhekou = 0.7;
  104. switch ($zhekou) :
  105. case 0.9:
  106. $shijijiage *= 0.9;
  107. break;
  108. case 0.8:
  109. $shijijiage *= 0.8;
  110. break;
  111. case 0.7:
  112. $shijijiage *= 0.7;
  113. break;
  114. default:
  115. $shijijiage = $shijijiage;
  116. endswitch;
  117. echo '实际支付: ' . $shijijiage . '折扣率:' . $zhekou .'<br>';
  118. echo '<hr>';

PHP循环

序号 类型 语法 模板语法
1 入口判断型 while(){...} while(): ... endwhile;
2 出口判断型 do {...} while(); do : ... while();
3 计数型 for(){...} for () : ... endfor;

current():获取数组当前值
reset():重置数组指针
count(): 计算数组元素的数量
strlen(): 计算字符串长度
trim(), rtrim(), ltrim(): 是从字符串二边,右边, 左边删除指定的字符,默认删除的是空格
mt_rand(min, max): 产生指定范围的随机数

count()判断数组元素个数
strlen()判断字符串长度

  1. $cities = ['武汉', '合肥', '南京', '杭州', '上海'];
  2. //while循环
  3. // $city = current($cities): 循环条件
  4. // while ($city = current($cities)) {
  5. // echo $city . '<br>';
  6. // // 更新循环条件, 没有这个语句, 会进入死循环
  7. // next($cities);
  8. // }
  9. // reset($cities);
  10. // 模板语法
  11. while ($city = current($cities)) :
  12. echo $city . '<br>';
  13. // 更新循环条件, 没有这个语句, 会进入死循环
  14. next($cities);
  15. endwhile;
  • for(): 计数式循环
    for(循环变量的初始化; 循环条件; 更新循环条件) {…}
  1. // 3. 计数型
  2. echo '数组中有 : ' . count($cities);
  3. // $i = 0;循环变量初始化
  4. // $i < count($cities): 循环条件
  5. // $i++: 更新循环条件
  6. for ($i = 0; $i < count($cities); $i++) {
  7. // echo $cities[$i] . '<br>';
  8. }
  9. // 模板语法
  10. for ($i = 0; $i < count($cities); $i++) :
  11. // echo $cities[$i] . '<br>';
  12. endfor;
  • for()循环遍历 关联数组
    next()向后移动,同时会获得当前数组元素的值
    prev()向前移动,同时会获得当前数组元素的值
    end()移动到最后一个数组元素,并获得它的值
    reset()移动到第一个数组元素,并获得它的值
    key()获得当前数组指针指向的数组元素的键名
    current()获得当前数组指针指向的数组元素的值

  • 循环控制关键字:

序号 关键字 描述
1 continue 终止本次循环,提前进入下一轮
2 break 跳出本层循环
  • continue break使用方法:
  1. for ($i = 0; $i < count($cities); $i++) :
  2. // 跳过空数据
  3. if (!$cities[$i]) continue;
  4. echo $cities[$i] . '<br>';
  5. // break; 跳出本层
  6. if ($cities[$i] === '杭州') break;
  7. endfor;
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:总结的不错, 希望你经常回看一下你的博客
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments