Blogger Information
Blog 17
fans 1
comment 0
visits 14750
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP分支与循环
邱世家的博客
Original
780 people have browsed it

分支:

  • 以下代码都是用模板语法写的
  1. <?php
  2. // 单分支(if):if(条件表达式){条件语句,当为单条的时候,可以省略大括号}
  3. // 当条件表达式为true时 执行条件语句,反之不执行
  4. $age = 25;
  5. if($age > 20 && $age < 30){
  6. echo '复合条件,执行。下面一行是简写','<hr>';
  7. }
  8. $age = 20;
  9. if ($age > 20 && $age < 30) echo '不符合条件,所以不执行';
  10. // 双分支(else从句 ):if(条件表达式){条件语句}else{条件语句}
  11. // 当条件表达式为true时 执行条件语句,当为false时 执行else中的条件语句
  12. $size = 27;
  13. if ($size >=27) :
  14. echo '27寸是我喜欢的最小尺寸';
  15. else :
  16. echo '屏幕尺寸太小了';
  17. endif;
  18. echo '<br>';
  19. $size = 19;
  20. if ($size >=27) :
  21. echo '27寸是我喜欢的显示尺寸';
  22. else :
  23. echo '屏幕尺寸太小了';
  24. endif;
  25. echo '<hr>';
  26. //三元运算符 简化 ? :
  27. $size = 19;
  28. echo $size >= 27 ? '27寸是我喜欢的显示尺寸':'屏幕尺寸太小了';
  29. echo '<hr>';
  30. // 多分支(elseif子句):必须右默认分支else(){}
  31. //if(条件表达式1){条件语句1}elseif(条件表达式2){条件语句2}...elseif(条件语句n){条件语句n}else(条件表达式){默认条件语句}
  32. $performance = 50;
  33. if ($performance >=60 && $performance <80) :
  34. echo '良';
  35. elseif ($performance >=80 && $performance <= 90) :
  36. echo '优';
  37. elseif ($performance === 100) :
  38. echo '完美';
  39. else :
  40. $performance < 60 ;
  41. echo '要加油了','<br>';
  42. endif;
  43. /*工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。
  44. 将表达式的值与结构中每个 case 的值进行比较。
  45. 如果存在匹配,则执行与 case 关联的代码。代码执行后,
  46. 使用 break 来阻止代码跳入下一个 case 中继续执行。
  47. default 语句用于不存在匹配(即没有 case 为真)时执行。
  48. switch (n)
  49. {
  50. case label1(代表条件语句1):
  51. 如果 n=label1,此处代码将执行;
  52. break;
  53. case label2(代表条件语句2):
  54. 如果 n=label2,此处代码将执行;
  55. break;
  56. default:
  57. 如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
  58. }
  59. */
  60. // 用switch语句来简化 多分支:
  61. $performance = 100;
  62. switch($performance):
  63. case $performance >=60 && $performance <80 :
  64. echo '良';
  65. break;
  66. case $performance >=80 && $performance <90 :
  67. echo '优';
  68. break;
  69. case $performance === 100 :
  70. echo '完美';
  71. break;
  72. default :
  73. echo '要加油了';
  74. endswitch;
  75. echo '<br>';
  76. // switch 通常用在单值判断中。
  77. $colour = 'red';
  78. switch($colour) :
  79. case $colour === 'red':
  80. echo '喜欢红色';
  81. break;
  82. case $colour === 'green':
  83. echo '喜欢绿色';
  84. break;
  85. case $colour === 'black':
  86. echo '喜欢黑色';
  87. break;
  88. default:
  89. echo '你喜欢的颜色不是红 绿 黑';
  90. endswitch;

循环

  1. <?php
  2. /*
  3. for 循环
  4. 语法:
  5. for (初始值; 条件; 增量)
  6. {
  7. 要执行的代码;
  8. }
  9. 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
  10. 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
  11. 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
  12. 上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
  13. */
  14. // 遍历数组 首选要知道有多少个元素
  15. // 1.for循环方式--只能用于纯索引数组
  16. $mountains = ['恒山','嵩山','衡山','华山','泰山'];
  17. // 数组长度 count()
  18. echo count($mountains),'<hr>';
  19. for ($i = 0; $i < count($mountains); $i++) :
  20. echo $mountains[$i],'<br>';
  21. endfor;
  22. echo '<hr>';
  23. for ($i = 0; $i < count($mountains); $i++) :
  24. // 输出拦截, break 提前终止循环
  25. if ($i > 1) break;
  26. echo $mountains[$i],'<br>';
  27. endfor;
  28. echo '<hr>';
  29. for ($i = 0; $i < count($mountains); $i++) :
  30. // 有选择性输出,跳过一部分元素continu
  31. if ($i === 3) continue;
  32. echo $mountains[$i],'<br>';
  33. endfor;
  34. echo '<hr>';
  35. // 判断型 循环: 1.入口判断型while(条件为真){执行的代码}
  36. // current(): 获取当前数组元素的值,
  37. echo current($mountains),'<hr>';
  38. while ($mountain = current($mountains)) :
  39. echo $mountain,'<br>';
  40. //next(): 当前数组指针下移
  41. next($mountains);
  42. endwhile;
  43. echo '<hr>';
  44. // 2.出口判断型do {条件语句} while(条件) 无论条件是否为true,都会先执行一遍
  45. //do{} while 没有对应的模板语法 也不常用
  46. // 指针复位
  47. reset($mountains);
  48. do {
  49. echo $mountain,'<br>';
  50. //next(): 当前数组指针下移
  51. next($mountains);
  52. } while ($mountain = current($mountains));
  53. // 输出结果少了恒山,因为第一次输出$mountain时 并没有值 ,

运算符

  • 比较运算符(返回布尔值):
    “==”和”===”区别
    “==”:值比较,当操作符两边的操作类型不一致,会触发类型自动转换机制
    “===” 除了值相等,类型也必须一致。
  • 太空船运算符:<=>,
    第一个数比第二个数大返回正数1,比第二个小返回负数-1,相等 返回0
  1. //返回int(-1)
  2. var_dump(10 <=> 20);
  3. //返回int(1)
  4. var_dump(10 <=> 5);
  5. //返回int(0)
  6. var_dump(10 <=> 10);
  • 逻辑运算符:也返回布尔值
  1. // && :两边表达式,除非全部为true,否则返回false
  2. var_dump((10 > 20) && (5 > 8));
  3. // ||:两边表达式只要有一个为true,则返回true
  4. var_dump((10 < 20) || (5 > 8));
  5. var_dump(true || false);
  • 三元运算符语法:
    条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。可以用来简化双分支

  • 短路求值

    1. // 如果第一个表达式(isset($username)),为false,则直接执行 else 分支,不会再去计算$username === 'admin'
    2. if ( isset($username) && $username === 'admin')
    3. echo '欢迎您';
    4. else
    5. echo '未登录先登录','<hr>';
  • ??: null合并运算符
  1. // 用户名:root, 不设置密码 默认密码就是root
  2. $password = sha1('123456');
  3. echo isset($password) ? $password : 'root';
  4. echo "<hr>";
  5. // isset() + 三元运算 = 变量默认值
  6. $password = '123456';
  7. unset($password);
  8. // ?? 代替isset()
  9. echo $password ?? 'root';

总结;初步认识PHP分支和循环以及预算符,总有种云里雾里的感觉。

Correcting teacher:GuanhuiGuanhui

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!