博客列表 >运算符与流程

运算符与流程

雪~人胖胖
雪~人胖胖原创
2020年04月19日 00:36:27447浏览

运算符

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.学习了分支结构,循环结构和模板语法

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议