博客列表 >php流程控制

php流程控制

小程_武汉_214945
小程_武汉_214945原创
2020年04月18日 15:35:57677浏览

一.运算符

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的整数

代码举例

  1. <?php
  2. $a=1;
  3. $b='1';
  4. // ==与=== 比较符
  5. var_dump($a==$b) ;//即通过为true
  6. echo '<br>';
  7. var_dump($a===$b) ;//结果为false
  8. //组合比较符
  9. $b=2;
  10. var_dump($a<=>$b);//结果为-1
  11. var_dump($b<=>$a);//结果为1

5. 逻辑运算符

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

||一真全真,\$\$一假全假,!取反


6. 三元运算符

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

代码举例

  1. <?php
  2. // ??运算符:a??b,a为null输出b,a不为null输出a
  3. $a=0;
  4. $b=null;
  5. $c=123;
  6. echo ($a??$c).'<br>';//输出0
  7. echo ($b??$c).'<br>';//输出123
  8. echo ($c??$a).'<br>';//输出123

7. 错误屏蔽符

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

语法错误不能屏蔽

二.流程控制

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. $score=90;
  4. if($score>80){
  5. echo '成绩为优秀';
  6. }
  7. //单分支模板语法
  8. // if ($score>70):
  9. // echo '优秀';
  10. // endif;
  11. //模板语法多用于html php混编
  12. echo '<hr>';
  13. //双分支
  14. if(0<$score&&$score<60){
  15. echo '未及格';
  16. }elseif(60<=$score){
  17. echo '良好';
  18. }
  19. echo '<hr>';
  20. //多分支
  21. if(0<$score&&$score<60){
  22. echo '未及格';
  23. }elseif(60<=$score&&$score<80){
  24. echo '良好';
  25. }elseif(80<=$score&&$score<=100){
  26. echo '优秀';
  27. }else{
  28. echo '成绩无效';
  29. }
  30. echo '<hr>';
  31. //使用switch语句改写多分支
  32. switch(true){
  33. case 0<$score&&$score<60 : echo '未及格';break;
  34. case 60<=$score&&$score<80 : echo '良好';break;
  35. case 80<=$score&&$score<=100 : echo '优秀';break;
  36. default: echo '成绩无效';
  37. }
  38. echo '<hr>';
  39. //switch 常用写法
  40. switch(floor($score/10)){
  41. case 0:echo '不及格';break;
  42. case 1:echo '不及格';break;
  43. case 2:echo '不及格';break;
  44. case 3:echo '不及格';break;
  45. case 4:echo '不及格';break;
  46. case 5:echo '不及格';break;
  47. case 6:echo '良好';break;
  48. case 7:echo '良好';break;
  49. case 8:echo '优秀';break;
  50. case 9:echo '优秀';break;
  51. case 10:echo '优秀';break;
  52. default: echo '成绩无效';
  53. }

2. 循环结构

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

循环控制关键字:

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

代码举例

  1. <?php
  2. //使用循环遍历人员名单
  3. $chart=['张三','李四','王五','赵六'];
  4. //while
  5. while ($name = current($chart))//条件判断语句,指针
  6. {
  7. echo $name . '<br>';
  8. next($chart);
  9. }
  10. reset($chart);
  11. echo '<hr>';
  12. //do~while
  13. reset($chart);
  14. do{
  15. echo $name=current($chart) . '<br>';
  16. next($chart);
  17. }while ($name = current($chart));
  18. echo '<hr>';
  19. //for
  20. for($a=0;$a<count($chart);$a++){
  21. echo $chart[$a].'<br>';
  22. }
  23. echo '<hr>';
  24. //continue
  25. //取出数组chart1和chart中都处在的值
  26. $chart1=['张三','小明','王五','赵六','小刚'];
  27. //方法:若数组$chart中存在$name,打印$name,否则跳转至下一循环
  28. for($a=0;$a<count($chart1);$a++){
  29. for($b=0;$b<count($chart);$b++){
  30. if($chart1[$a]==$chart[$b]){
  31. echo $chart1[$a].'<br>';
  32. }
  33. else{
  34. continue;
  35. }
  36. }
  37. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议