Blogger Information
Blog 26
fans 0
comment 0
visits 18151
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
运算符与流程
雪~人胖胖
Original
434 people have browsed it

运算符

1. 算术运算符

序号 运算符 示例 描述
1 + $a+$b $a与$b 的和
2 - $a-$b $a与$b 的差
3 * $a*$b $a与$b 的积
4 / $a/$b $a与$b 的商
5 % $a%$b $a与$b 的余(模)
6 ++ $a++/++$a 先用再加/先加再用
7 -- $a--/--$a 先用再减/先减再用
8 ** 2**4 幂运算:2 的 4 次方
  • $a++=>$a = $a + 1, $a--=>$a = $a - 1
  • **: 幂运算需要 php5.6+版本

2. 字符串运算符

运算符 示例 描述
. $str1 . $str2 连接运算,返回连接之后的字符串

3. 赋值运算符

序号 运算符 示例 描述
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';

4. 比较运算符

序号 运算符 示例 描述
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 $a > $b 返回>0的整数
2 $a < $b 返回<0的整数
3 $a = $b 返回=0的整数

5. 逻辑运算符

序号 运算符 示例 描述
1 && $a && $b 逻辑与
2 ` ` `$a $b` 逻辑或
3 ! !$a 逻辑非
4 xor $a xor $b 逻辑异或

6. 三元运算符

序号 运算符 示例 描述 场景
1 ?: $a ?: $b 仅判断表达式true/false 简化双分支
2 ?? $a ?? $b 判断变量存在且不为 null 设置默认值

7. 错误屏蔽符

运算符 示例 描述 场景
@ @(10/0) 屏蔽所有运行错误 线上生产环境

2流程控制

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. <?php
  2. //1.单分支
  3. $amount = 6000;
  4. $payment =$amount;
  5. if ($amount > 2500){
  6. $payment = $amount * 0.9;
  7. }
  8. echo '实际支付:'. $payment .'元<br>';
  9. //如果代码本只有一行可以省略大括号
  10. // if ($amount > 2500) $payment = $amount * 0.9;
  11. //有一种代替语法:模板语法,与HTML混编
  12. // if ($amount > 2500):
  13. // $payment = $amount * 0.9;
  14. // endif;
  15. //2双分支
  16. if ($amount > 2500){
  17. $payment = $amount * 0.9;
  18. }else{
  19. $payment = $amount;
  20. }
  21. echo '实际支付:'. $payment .'元<br>';
  22. //3模板语法
  23. // if ($amount > 2500) :
  24. // $payment = $amount * 0.9;
  25. // else :
  26. // $payment = $amount;
  27. // endif;
  28. //4多分支
  29. // if ($amount > 2500 && $amount < 5000){
  30. // $payment = $amount * 0.9;
  31. // }elseif ($amount >=5000){
  32. // $payment = $amount * 0.85;
  33. // }else{
  34. // $payment = $amount;
  35. // }
  36. // echo '实际支付:'. $payment .'元<br>';
  37. //模板语法
  38. if ($amount > 2500 && $amount < 5000):
  39. $payment = $amount * 0.9;
  40. elseif ($amount >=5000):
  41. $payment = $amount * 0.85;
  42. else:
  43. $payment = $amount;
  44. endif;
  45. echo '实际支付:'. $payment .'元<br>';
  46. //5 switch
  47. // switch (true) {
  48. // case $amount > 2500 && $amount < 5000:
  49. // $payment = $amount * 0.9;
  50. // break;
  51. // case $amount >=5000:
  52. // $payment = $amount * 0.85;
  53. // break;
  54. // default:
  55. // $payment = $amount;
  56. // }
  57. // echo '实际支付:'. $payment .'元<br>';
  58. //模板语法
  59. switch (true) :
  60. case $amount > 2500 && $amount < 5000:
  61. $payment = $amount * 0.9;
  62. break;
  63. case $amount >=5000:
  64. $payment = $amount * 0.85;
  65. break;
  66. default:
  67. $payment = $amount;
  68. endswitch;
  69. echo '实际支付:'. $payment .'元<br>';
  70. //switch单值判断
  71. $month = 2;
  72. if (floor($month)==$month && $month>0 ) :
  73. switch ($month) :
  74. case $month >= 1 && $month<=3 :
  75. echo '这是第一季度';
  76. break;
  77. case $month >=4 && $month<=6 :
  78. echo '这是第二季度';
  79. break;
  80. case $month >=7 && $month<=9 :
  81. echo '这是第三季度';
  82. case $month >=10 && $month<=12 :
  83. echo '这是第四季度';
  84. default:
  85. echo 'Are You Kidding Me ';
  86. endswitch;
  87. else:
  88. echo 'Are You Kidding Me ';
  89. endif;


2. 循环结构

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

循环控制关键字:

序号 关键字 描述
1 continue 终止本次循环,提前进入下一轮
2 break 跳出本层循环
  1. <?php
  2. //循环
  3. $cities = ['杭州','绍兴','上海','南京','温州'];
  4. // current()获取数组当前值 next移动指针 reset 重置数组指针
  5. //入口判断型
  6. while ($city = current($cities)):
  7. echo $city .'&nbsp';
  8. next($cities);
  9. endwhile;
  10. echo '<hr>';
  11. //出口判断型 不论条件是否为真,都要执行一遍do
  12. $i=0;
  13. do{
  14. echo $cities[$i] .'&nbsp';
  15. $i++;
  16. }
  17. while ($i < count($cities));
  18. echo '<hr>';
  19. //for循环
  20. $cities = ['杭州','绍兴','','上海','南京',null,'温州'];
  21. for ($i=0 ;$i<count($cities);$i++):
  22. //continue`终止本次循环,提前进入下一轮
  23. if (!$cities[$i]) continue;
  24. echo $cities[$i].'<br>';
  25. if ($cities[$i] === '上海') break;
  26. endfor;

总结

1.学习了基本的运算符??<=>需要记忆一下
2.学习了分支结构,循环结构和模板语法

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
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!