Blogger Information
Blog 119
fans 3
comment 1
visits 95312
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP运算符和流程控制
赵大叔
Original
599 people have browsed it

一、代码运行演示地址

二、一些难记住但常用的运算符

1. 算术运算符

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

2. 赋值运算符

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

3. 比较运算符

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

4. 逻辑运算符

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

5. 三元运算符

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

6. 错误屏蔽符

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

运算符代码:

  1. <?php
  2. // 运算符
  3. // 取余数
  4. var_dump(10%3);
  5. echo '<hr>';
  6. // ++,--,只能用在变量上, 先引用变量的值, 再将变量执行+1或-1的运算
  7. $a = 88;
  8. var_dump($a);
  9. $a++;
  10. var_dump($a);
  11. echo '<hr>';
  12. $b = 66;
  13. $b--;
  14. var_dump($b);
  15. $b = 66;
  16. --$b;
  17. var_dump($b);
  18. echo '<hr>';
  19. // 比较运算符返回布尔类型的值
  20. // 太空船 <=>
  21. var_dump(66 <=> 88);
  22. // -1 < 0, 说明 10 小于 20
  23. var_dump(88 <=> 66);
  24. // 1 > 0, 说明 10 大于 5
  25. var_dump(66 <=> 66);
  26. // 0, 说明 相等
  27. echo '<hr>';
  28. // && 且,同时符合
  29. var_dump((66<88) && 88>66);
  30. // || 或,其中一个符合
  31. var_dump((66<88) || 66>88);
  32. echo '<hr>';
  33. // 三元运算符
  34. // 条件 ? true : false
  35. $age = 26;
  36. echo $age > 18 ? '成年了' : '小屁孩';
  37. echo '<hr>';
  38. // ?? null合并运算符
  39. // 设置变量默认值
  40. $password;
  41. // $password = isset($password) ? $password : 'root';
  42. $password = $password ?? 'root';
  43. echo $password;
  44. echo '<hr>';
  45. // @: 屏蔽所有运行错误
  46. echo @$username;
  47. @(10/0);
  48. // 语法 错误是不能被屏蔽
  49. //@incle 'hello.php';

演示效果:

三、流程控制

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. // 分支
  3. // 1.单分支
  4. $salary = 800;
  5. if($salary < 1000){
  6. echo '建议走路,锻炼身体。<br>';
  7. }
  8. // 简写
  9. if($salary < 1000) echo '建议走路,锻炼身体。<br>';
  10. // 模板语法
  11. if($salary < 1000):
  12. echo '建议走路,锻炼身体。<br>';
  13. endif;
  14. echo '<hr>';
  15. // 2.双分支
  16. $salary = 2000;
  17. if($salary < 1000){
  18. echo '建议走路,锻炼身体。<br>';
  19. } else {
  20. echo '可以不用走路了。<br>';
  21. }
  22. // 模板语法
  23. if($salary < 1000):
  24. echo '建议走路,锻炼身体。<br>';
  25. else :
  26. echo '可以不用走路了。<br>';
  27. endif;
  28. echo '<hr>';
  29. // 3.多分支
  30. $salary = 9000;
  31. if ($salary >= 1000 && $salary < 3000) {
  32. echo '电动自行车,告别城市拥堵。<br>';
  33. } elseif ($salary >= 3000 && $salary < 5000) {
  34. echo '高档电动车,将拥堵的车流甩在身后。<br>';
  35. } elseif ($salary >= 5000 && $salary < 8000) {
  36. echo '入手入门级6万左右车型,成为有车一族。<br>';
  37. } elseif ($salary >= 8000) {
  38. echo '10万以上车型。<br>';
  39. } else {
  40. echo '还是老老实实走路,锻炼身体吧。<br>';
  41. }
  42. // 模板语法
  43. if ($salary >= 1000 && $salary < 3000) :
  44. echo '电动自行车,告别城市拥堵。<br>';
  45. elseif ($salary >= 3000 && $salary < 5000) :
  46. echo '高档电动车,将拥堵的车流甩在身后。<br>';
  47. elseif ($salary >= 5000 && $salary < 8000) :
  48. echo '入手入门级6万左右车型,成为有车一族。<br>';
  49. elseif ($salary >= 8000) :
  50. echo '10万以上车型。<br>';
  51. else :
  52. echo '还是老老实实走路,锻炼身体吧。<br>';
  53. endif;
  54. echo '<hr>';
  55. // 4.多分支简化'switch'
  56. $salary = 6000;
  57. switch (true) {
  58. case $salary >= 1000 && $salary < 3000:
  59. echo '电动自行车,告别城市拥堵。<br>';
  60. break;
  61. case $salary >= 3000 && $salary < 5000:
  62. echo '高档电动车,将拥堵的车流甩在身后。<br>';
  63. break;
  64. case $salary >= 5000 && $salary < 8000:
  65. echo '入手入门级6万左右车型,成为有车一族。<br>';
  66. break;
  67. case $salary >= 8000:
  68. echo '10万以上车型。<br>';
  69. break;
  70. default:
  71. echo '还是老老实实走路,锻炼身体吧。<br>';
  72. }
  73. // 模板语法
  74. $salary = 6000;
  75. switch (true) :
  76. case $salary >= 1000 && $salary < 3000:
  77. echo '电动自行车,告别城市拥堵。<br>';
  78. break;
  79. case $salary >= 3000 && $salary < 5000:
  80. echo '高档电动车,将拥堵的车流甩在身后。<br>';
  81. break;
  82. case $salary >= 5000 && $salary < 8000:
  83. echo '入手入门级6万左右车型,成为有车一族。<br>';
  84. break;
  85. case $salary >= 8000:
  86. echo '10万以上车型。<br>';
  87. break;
  88. default:
  89. echo '还是老老实实走路,锻炼身体吧。<br>';
  90. endswitch;
  91. echo '<hr>';
  92. // switch单值判断
  93. $live= '';
  94. $salary = 6000;
  95. switch ($salary) :
  96. case 4000:
  97. $live = '养活自己.';
  98. break;
  99. case 6000:
  100. $live = '有点存款.';
  101. break;
  102. case 10000:
  103. $live = '找个女朋友.';
  104. break;
  105. case 12000:
  106. $live = '买辆车.';
  107. break;
  108. default:
  109. $live = '未定义.';
  110. endswitch;
  111. echo $live;
  112. echo '<hr>';

代码演示效果:


2. 循环结构

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

循环控制关键字:

序号 关键字 描述
1 continue 终止本次循环,提前进入下一轮
2 break 跳出本层循环

循环代码:

  1. <?php
  2. // 循环
  3. $country = ['CHN', 'US', 'AS', 'VN', 'CANADA'];
  4. // current():当前数组指针
  5. // next():下移
  6. // reset():重置
  7. // count():计数
  8. // for:计数型
  9. for($i = 0; $i < count($country); $i++) {
  10. echo $country[$i] . '<br>';
  11. next( $country);
  12. }
  13. echo '<hr>';
  14. // 模板语法
  15. for($i = 0; $i < count($country); $i++) :
  16. echo $country[$i] . '<br>';
  17. next( $country);
  18. endfor;
  19. echo '<hr>';
  20. // break: 跳出循环
  21. $country = ['CHN', 'US', 'AS', 'VN', 'CANADA'];
  22. for($i = 0; $i < count($country); $i++) :
  23. echo $country[$i] . '<br>';
  24. next( $country);
  25. if ($country[$i] === 'AS') break;
  26. endfor;
  27. echo '<hr>';
  28. // continue : 终止本次循环,提前进入下一轮
  29. $country = ['CHN', false, '', 'US', 'AS', null, 'VN', 'CANADA'];
  30. for($i = 0; $i < count($country); $i++) :
  31. if (!$country[$i]) continue;
  32. echo $country[$i] . '<br>';
  33. next( $country);
  34. endfor;
  35. echo '<hr>';
  36. // while:入口判断型
  37. $country = ['CHN', 'US', 'AS', 'VN', 'CANADA'];
  38. $i = 0;
  39. while ($i < count($country)) :
  40. echo $country[$i] . '<br>';
  41. // 更新循环条件, 没有这个语句, 会进入死循环
  42. next($country);
  43. $i++;
  44. endwhile;
  45. echo '<hr>';
  46. // do {...} while():出口判断型
  47. reset($country);
  48. $i = 0;
  49. do {
  50. echo $country[$i] . '<br>';
  51. // 更新循环条件, 没有这个语句, 会进入死循环
  52. next($country);
  53. $i++;
  54. } while ($i > count($country));

代码演示效果:

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