Blogger Information
Blog 57
fans 3
comment 0
visits 60336
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础-操作运算符/流程控制
岂几岂几
Original
526 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+版本
    运行demo:
  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # PHP中的运算符
  12. # 1. 算术运算符
  13. ## 1.1. +, -, *, /: 加减乘除
  14. $x = 10;
  15. $y = 20;
  16. // 执行加法
  17. dumpbr($x + $y);
  18. // 执行减法
  19. dumpbr($x - $y);
  20. // 执行除法
  21. dumpbr($y / $x);
  22. // 执行乘法
  23. dumpbr($x * $y);
  24. /*
  25. 执行结果:
  26. int(30)
  27. int(-10)
  28. int(2)
  29. int(200)
  30. */
  31. ## 1.2. %: 取模运算符, 即取余数.
  32. $x = 100;
  33. $y = 7;
  34. dumpbr($x % $y);
  35. /*
  36. 100 / 7 = 14 ... 2
  37. 执行结果:
  38. int(2)
  39. */
  40. ## 1.3. ++:自增;--:自减;
  41. $x = 20;
  42. $y = 10;
  43. /* 自增/自减的优先级大于加减乘除 */
  44. /* ++在变量后面, 则先参与执行表达式,再自增 */
  45. dumpbr($x + $y++);
  46. echobr('$y = ' . $y);
  47. /*
  48. 20 + 10 = 30;
  49. $y = 10 + 1 = 11;
  50. 执行结果:
  51. int(30)
  52. $y = 11
  53. */
  54. /* ++在变量前面, 则先自增, 再参与执行表达式 */
  55. $y = 10;
  56. dumpbr($x + ++$y);
  57. echobr('$y = ' . $y);
  58. /*
  59. $y = 10 + 1 = 11;
  60. 20 + 11 = 31;
  61. 执行结果:
  62. int(31)
  63. $y = 11
  64. */
  65. /* --跟++类似, 功能相反, 自减. 实例略 */

2. 字符串运算符

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

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # 2. . : 字符串连接
  12. /* test1:拼接字符串 */
  13. echobr('hello ' . 'php!');
  14. /*
  15. 执行结果:
  16. hello php!
  17. */
  18. /* test2:拼接字符串和数字(隐式将数字转换为字符串) */
  19. $x = 20;
  20. $y = 10;
  21. /* 必须要用小括号把表达式括起来, 否则会报错 */
  22. $z = '$x + $y = ' . ($x + $y);
  23. echobr($z);
  24. /*
  25. 执行结果:
  26. $x + $y = 30
  27. */
  28. /* test3:拼接数字和数字(两个都会被隐式转换为字符串) */
  29. $z = $x . $y;
  30. echobr($z);
  31. /*
  32. 执行结果:
  33. 2010
  34. */
  35. /* test4:拼接字符串和null(null被当做"") */
  36. $z = "hello" . null;
  37. echobr($z);
  38. /*
  39. 执行结果:
  40. hello
  41. */

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';

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # 3. 赋值运算符
  12. ## 3.1. = : 将表达式的值赋给变量. 略
  13. ## 3.2. +=, -=, *=, /=, %= : 将变量的值加上(减去/乘以/除以/取余)表达式的值, 把所得的结果赋给变量.
  14. /* test1: 以+=为例 */
  15. $x = 10;
  16. $x += 65535;
  17. echobr($x);
  18. /*
  19. 等效于$x = $x + 65535 = 10 + 65535 = 65545;
  20. 执行结果:
  21. 65545
  22. */
  23. /* test2: 以%=为例 */
  24. $x = 50;
  25. $y = 7;
  26. $x %= $y;
  27. echobr($x);
  28. /*
  29. 执行结果:
  30. 1
  31. */
  32. ## 3.3. .= : 将变量的值转换成字符串, 后拼接表达式的值, 把所得的结果赋予给变量
  33. /* test1 */
  34. $x = 'hello ';
  35. $y = 'boys and girls';
  36. $x .= $y;
  37. echobr($x);
  38. /*
  39. 执行结果:
  40. hello boys and girls
  41. */

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

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # 4. 比较运算符
  12. ## 4.1. >, >=, <, <= : 跟数学上的大于, 大于等于, 小于, 小于等于同义.
  13. /* test1 */
  14. $x = 13;
  15. $y = 5;
  16. if ($x < $y) {
  17. echobr('变量$x的值比$y的值小');
  18. } else {
  19. echobr('变量x的值不小于$y的值');
  20. }
  21. /*
  22. 执行结果:
  23. 变量x的值不小于$y的值
  24. */
  25. ## 4.2. ==:判断左右两边的值是否相等;===:同时判断左右两边的值和数据类型是否相等, 值和数据类型都相等, 才返回true.
  26. $x = 100;
  27. $y = '100';
  28. $z = '100';
  29. /* test1: */
  30. if ($x == $y) {
  31. echobr('变量$x的值和变量$y的值在数值上相等');
  32. } else {
  33. echobr('变量$x的值和变量$y的值在数值上不相等');
  34. }
  35. /*
  36. 执行结果:
  37. 变量$x的值和变量$y的值在数值上相等
  38. */
  39. /* test2: */
  40. if ($x === $y) {
  41. echobr('变量$x的值和变量$y的值在数值上和数据类型上都相等');
  42. } else {
  43. echobr('变量$x的值和变量$y的值在数据类型上不相等或数值上和数据类型上均不相等');
  44. }
  45. /*
  46. 执行结果:
  47. 变量$x的值和变量$y的值在数据类型上不相等或数值上和数据类型上均不相等
  48. */
  49. /* test3 */
  50. $x = null;
  51. $y = 'null';
  52. $z = 'NuLl';
  53. dumpbr($x == $y);
  54. dumpbr($x === $y);
  55. dumpbr($y == $z);
  56. /*
  57. 测试结果: 1:null值和"null"字符串值不相等; 2: 字符串值比较区分大小写;
  58. 执行结果:
  59. bool(false)
  60. bool(false)
  61. bool(false)
  62. */
  63. // !=(值不相等), !==(值和类型补全等)的使用方法类似, 例子略.
  64. ## 4.3. <=> : 太空船运算符, PHP7.0+才支持, 左边的值大于右边的值, 返回正数(1); 左边的数值小于右边的数值, 返回负数(-1); 左右相等, 返回0.
  65. /* 使用场景: 当双方比较的各种结果分别执行不同的业务逻辑时使用 */
  66. $temperature = 20;
  67. $zero = 0;
  68. $result = $temperature <=> $zero;
  69. $status = '';
  70. switch ($result) {
  71. case 1:
  72. $status = $temperature . '摄氏度的水的状态是液体';
  73. break;
  74. case 0:
  75. $status = $temperature . '摄氏度的水的状态是冰水混合物';
  76. break;
  77. case -1:
  78. $status = $temperature . '摄氏度的水的状态是固态';
  79. break;
  80. default:
  81. }
  82. echobr($status);
  83. /*
  84. 执行结果:
  85. 20摄氏度的水的状态是液体
  86. */

5. 逻辑运算符

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

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # 5. 逻辑运算符
  12. ## 5.1. &&: 与运算, && 左右两边的表达式都返回true时, 与运算的值才返回true;否则, 返回false.
  13. /* 逻辑运算符的优先级小于比较运算符. */
  14. /* 如果左边的表达式就返回false, 则直接返回false, 不计算右边的表达式的值了. */
  15. /* test1: */
  16. dumpbr(3 < 4 && 5 > 8);
  17. /*
  18. 执行结果:
  19. bool(false)
  20. */
  21. /* test2: */
  22. $array;
  23. dumpbr(isset($array) && count($array) > 0);
  24. /*
  25. 执行isset($array)表达式的值是false, 直接返回. count($array)未执行, 所以不会报错
  26. 执行结果:
  27. bool(false)
  28. */
  29. ## 5.2. ||: 或运算, || 左右两边的表达式都返回false时, 或运算的值才返回false;否则, 返回true.
  30. /* 如果左边的表达式返回true, 则直接返回true, 不计算右边表达式的值了. */
  31. dumpbr(null == "null" || "null" == "nUlL");
  32. /*
  33. 运行结果:
  34. bool(true)
  35. */
  36. ## 5.3. !: 非运算. 即布尔值取反.
  37. // 举例(略)

6. 三元运算符

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

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # 6. 三元运算符
  12. ## 6.1. ?: 三元运算符, 类似: if(判断){return 表达式1} else {return 表达式2}
  13. $age = 20;
  14. $status = ($age >= 18) ? '成年人' : '未成年人';
  15. echobr($age . '岁的人是' . $status);
  16. /*
  17. 执行结果:
  18. 20岁的人是成年人
  19. */
  20. ## 6.2. ?? 判断变量存在且不为 null, 否则为其设置默认值.
  21. $username = $GET['username'] ?? 'admin';
  22. echobr($username);
  23. /*
  24. 当请求路径包括: ?username=zhangsan, 则打印结果为:zhangsan
  25. 执行结果:
  26. admin
  27. */

7. 错误屏蔽符

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

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. ## 7. 错误屏蔽符
  12. /* 使用场景: 防止敏感信息泄露, 如sql语句, 数据库链接的用户名,密码等 */
  13. // $username未定义, 直接echo会报错, 加了@, 异常照旧, 但不报错
  14. echo @$username;
  15. /*
  16. 不加@, 浏览器会输出异常信息, 加了之后, 就不输出了.
  17. */
  18. // 语法错误不能被@忽略
  19. @defin('CONSTANT1', '我是一个常量');
  20. /*
  21. 照样报错
  22. */

流程控制

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;

运行demo:

  1. <?php
  2. # 流程控制
  3. function echobr($param = '')
  4. {
  5. echo $param . '<br>';
  6. }
  7. function dumpbr($param = '')
  8. {
  9. var_dump($param);
  10. echo '<br>';
  11. }
  12. # 1. 分支结构
  13. ## 1.1. 单分支
  14. /* 单分支只有if, 没有else/elseif */
  15. /* test1: */
  16. $current = 10;
  17. $time = 8;
  18. if ($current > $time) {
  19. echobr('现在已经' . $current . '点了, 上班时间是' . $time . '点, 你迟到了');
  20. }
  21. /*
  22. 执行结果:
  23. 现在已经10点了, 上班时间是8点, 你迟到了
  24. */
  25. /* 当代码体中只有一行代码时, 花括号可以省略 */
  26. if ($current > $time)
  27. echobr('现在已经' . $current . '点了, 上班时间是' . $time . '点, 你迟到了');
  28. /*
  29. 执行结果:
  30. 现在已经10点了, 上班时间是8点, 你迟到了
  31. */
  32. /* 单分支的替代语法 */
  33. if ($current > $time) :
  34. echobr('现在已经' . $current . '点了, 上班时间是' . $time . '点, 你迟到了');
  35. endif;
  36. /*
  37. 执行结果:
  38. 现在已经10点了, 上班时间是8点, 你迟到了
  39. */
  40. ## 1.2. 双分支
  41. /* 有if,有else */
  42. /* test1: */
  43. $current = 7.20;
  44. $time = 8;
  45. if ($current > $time) {
  46. echobr('现在已经' . $current . '点了, 上班时间是' . $time . '点, 你迟到了');
  47. } else {
  48. echobr('打卡成功, 按时上班.');
  49. }
  50. /*
  51. 执行结果:
  52. 打卡成功, 按时上班.
  53. */
  54. /* 双分支的替代语法: */
  55. if ($current > $time) :
  56. echobr('现在已经' . $current . '点了, 上班时间是' . $time . '点, 你迟到了');
  57. else :
  58. echobr('打卡成功, 按时上班.');
  59. endif;
  60. /*
  61. 执行结果:
  62. 打卡成功, 按时上班.
  63. */
  64. ## 1.3. 多分支
  65. /* if...elseif...[elseif...]else... */
  66. $temperature = -20;
  67. $zero = 0;
  68. $result = $temperature <=> $zero;
  69. if ($result > 0) {
  70. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为液态.');
  71. } elseif ($result == 0) {
  72. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰水混合物.');
  73. } else {
  74. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰块.');
  75. }
  76. /*
  77. 执行结果:
  78. 当前水的温度为-20摄氏度, 形态为冰块.
  79. */
  80. /* 多分支语句的替代语法: */
  81. $temperature = 20;
  82. $zero = 0;
  83. $result = $temperature <=> $zero;
  84. if ($result > 0) :
  85. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为液态.');
  86. elseif ($result == 0) :
  87. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰水混合物.');
  88. else :
  89. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰块.');
  90. endif;
  91. /*
  92. 执行结果:
  93. 当前水的温度为20摄氏度, 形态为液态.
  94. */
  95. ## 1.4. 使用switch简化多分支
  96. $temperature = 0;
  97. $zero = 0;
  98. $result = $temperature <=> $zero;
  99. switch ($result) {
  100. case 1:
  101. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为液态.');
  102. break;
  103. case 0:
  104. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰水混合物.');
  105. break;
  106. default:
  107. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰块.');
  108. }
  109. /*
  110. 执行结果:
  111. 当前水的温度为0摄氏度, 形态为冰水混合物.
  112. */
  113. /* switch语句的替代语法 */
  114. $temperature = 15;
  115. $zero = 0;
  116. $result = $temperature <=> $zero;
  117. switch ($result):
  118. case 1:
  119. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为液态.');
  120. break;
  121. case 0:
  122. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰水混合物.');
  123. break;
  124. default:
  125. echobr('当前水的温度为' . $temperature . '摄氏度, 形态为冰块.');
  126. endswitch;
  127. /*
  128. 执行结果:
  129. 当前水的温度为15摄氏度, 形态为液态.
  130. */

2. 循环结构

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

运行demo:

  1. <?php
  2. # 循环控制
  3. function echobr($param = '')
  4. {
  5. echo $param . '<br>';
  6. }
  7. function dumpbr($param = '')
  8. {
  9. var_dump($param);
  10. echo '<br>';
  11. }
  12. # tips:遍历数组的一种方法
  13. $team = ['张三', '李四', '王五', '赵六', '钱七', '孙八'];
  14. /* 1.使用current($array)获取当前数组元素值 */
  15. /* 2.跳到下一个元素:next($array) */
  16. /* 3.重置数组元素指针指向第一个元素: reset($array) */
  17. # 1. 入口判断型
  18. /* while() {...} */
  19. /* test1: */
  20. while ($teammate = current($team)) {
  21. echobr($teammate);
  22. next($team);
  23. }
  24. /*
  25. 执行结果:
  26. 张三
  27. 李四
  28. 王五
  29. 赵六
  30. 钱七
  31. 孙八
  32. */
  33. /* while语句替代语法 */
  34. reset($team);
  35. while ($teammate = current($team)) :
  36. echobr($teammate);
  37. next($team);
  38. endwhile;
  39. /*
  40. 执行结果:
  41. 张三
  42. 李四
  43. 王五
  44. 赵六
  45. 钱七
  46. 孙八
  47. */
  48. # 2. 出口型判断
  49. /* do {...} while(...) */
  50. reset($team);
  51. do {
  52. $teammate = current($team);
  53. echobr($teamate);
  54. next($team);
  55. } while ($teammate = current($team));
  56. /* 出口型没有替代语法 */
  57. # 3. 计数型
  58. /* for循环 */
  59. /* test1: 循环生成学号 */
  60. $stuCount = 10;
  61. $stuNumber = [];
  62. $prefix = 'NO.';
  63. for ($index = 0; $index < $stuCount; $index++) {
  64. $stuNumber[] = $prefix . ($index + 1);
  65. }
  66. echo '<pre>';
  67. dumpbr($stuNumber);
  68. echo '</pre>';
  69. /*
  70. 执行结果:
  71. array(10) {
  72. [0]=>
  73. string(4) "NO.1"
  74. [1]=>
  75. string(4) "NO.2"
  76. [2]=>
  77. string(4) "NO.3"
  78. [3]=>
  79. string(4) "NO.4"
  80. [4]=>
  81. string(4) "NO.5"
  82. [5]=>
  83. string(4) "NO.6"
  84. [6]=>
  85. string(4) "NO.7"
  86. [7]=>
  87. string(4) "NO.8"
  88. [8]=>
  89. string(4) "NO.9"
  90. [9]=>
  91. string(5) "NO.10"
  92. }
  93. */
  94. /* for循环的替代语法 */
  95. /* 循环打印出所有学生学号 */
  96. for ($index = 0; $index < count($stuNumber); $index++) :
  97. echobr($stuNumber[$index]);
  98. endfor;
  99. /*
  100. 执行结果:
  101. NO.1
  102. NO.2
  103. NO.3
  104. NO.4
  105. NO.5
  106. NO.6
  107. NO.7
  108. NO.8
  109. NO.9
  110. NO.10
  111. */

循环控制关键字:

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

运行demo:

  1. <?php
  2. function echobr($param = '')
  3. {
  4. echo $param . '<br>';
  5. }
  6. function dumpbr($param = '')
  7. {
  8. var_dump($param);
  9. echo '<br>';
  10. }
  11. # 4. 两个循环中用到的关键字
  12. ## 4.1. continue: 结束本次循环, 提前进入下一次循环
  13. $stuNumber[4] = null;
  14. $stuNumber[7] = false;
  15. for ($index = 0; $index < count($stuNumber); $index++) {
  16. // 不打印false/null值
  17. if (!$stuNumber[$index]) {
  18. echobr('第' . ($index + 1) . '个学生退学了, 学号注销');
  19. continue;
  20. }
  21. echobr('第' . ($index + 1) . '个学生的学号是:' . $stuNumber[$index]);
  22. }
  23. /*
  24. 执行结果:
  25. 第1个学生的学号是:NO.1
  26. 第2个学生的学号是:NO.2
  27. 第3个学生的学号是:NO.3
  28. 第4个学生的学号是:NO.4
  29. 第5个学生退学了, 学号注销
  30. 第6个学生的学号是:NO.6
  31. 第7个学生的学号是:NO.7
  32. 第8个学生退学了, 学号注销
  33. 第9个学生的学号是:NO.9
  34. 第10个学生的学号是:NO.10
  35. */
  36. ## 4.2. break: 结束本层循环.
  37. $progress = [100, 100, 100, 100, 1000, 100, 100, 100];
  38. $maxNumber = 200;
  39. echobr('共有' . count($progress) . '个步骤');
  40. for ($index = 0; $index < count($progress); $index++) {
  41. if ($progress[$index] > $maxNumber) {
  42. echobr('有内鬼, 终止交易');
  43. break;
  44. }
  45. echobr('步骤' . ($index + 1) . '一切正常');
  46. }
  47. /*
  48. 执行结果:
  49. 共有8个步骤
  50. 步骤1一切正常
  51. 步骤2一切正常
  52. 步骤3一切正常
  53. 步骤4一切正常
  54. 有内鬼, 终止交易
  55. */

学习心得

  • php中的运算符总结
    • 算数运算符, 可以实现变量值在数学意义上的加减乘除幂等.
    • 字符串运算符用于数据拼接, 数据并不局限于字符串, 也可能是数字, null值, 布尔值等.
    • 赋值运算符用于给变量赋值, 有两种, 一种是直接给变量赋表达式的值(=); 另一种是将变量原值与表达式的值做算术运算或字符串拼接后, 把操作结果再赋给原变量(+=, .=等).
    • 比较运算符基本上就是对变量值进行数学意义上的大小比较, 当然, 也不止数学意义上的大小比较, 还包括数据类型的比较(===, !==)等.
    • 逻辑运算符, 是将多个比较结果进行逻辑判断(比较难解释, 类似离散数学的与或非), 从而实现复杂条件的判断.
    • 三元运算符, ?:可以看做是if(…) {…} else {…}(即多分支流程控制)的简写, 具有一定的流程控制功能. ??则是给未赋值的变量赋上默认值.
  • php中的流程控制总结
    • 单分支可以理解为: 如果…就…;
    • 双分支可以理解为: 如果…就…否则…;
    • 多分支可以理解为: 如果…就…否则如果…就…[1-n]否则…;
    • 流程控制, 即满足不同的条件时, 执行相应的代码.
  • php中的循环控制, 都是对一批数据, 一个个获取出来, 然后执行相同的代码处理(即循环体中的代码).while和do while都需要人为指定下一个循环的值对象;for则可以通过计数的方式, 自动计算下一个循环的值对象的序号, 即for循环处理的数据集, 大都是有序号标识的.
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!