博客列表 >PHP流程控制基本知识及实例

PHP流程控制基本知识及实例

北纬38
北纬38原创
2020年07月12日 14:53:06726浏览

1.运算

比较运算返回布尔值

  1. var_dump(100>250);
  2. var_dump(50 == '50');
  3. var_dump(100 === '100');
  4. echo '<br>';


太空船运算符
第一个操作数小于第二个操作数为-1,大于为1,等于为0.

  1. var_dump(100 <=>250);
  2. var_dump(100 <=>50);
  3. var_dump(100 <=>100);
  4. echo '<hr>';


逻辑运算符
&&:与运算符,两边运算全部为true,否则返回false。
||:或运算符,只要一个为true,返回就为true。

  1. var_dump((100>250)&&(10>15));
  2. var_dump((5<20)||(5>8));
  3. echo '<hr>';

短路求值
if..else..条件判断,如果第一条语句为false,则执行else里面的语句;如果第一条件语句为true,则执行第一条语句。

  1. $AA=25;
  2. if ($AA && $AA === 25)
  3. echo '你赚钱了';
  4. else
  5. echo '你亏钱了';
  6. echo '<hr>';
  7. $AA=23;
  8. if ($AA && $AA === 25)
  9. echo '你赚钱了';
  10. else
  11. echo '你亏钱了';
  12. echo '<hr>';

三元运算符
简化双分支,三个表达式,有两个运算符。

  1. if ($KG > 50) echo '太重了';
  2. else echo '太轻了';
  3. echo '<hr>';
  4. $KG = 30;
  5. echo ($KG >50) ? '太重了':'太轻了';
  6. echo '<hr>';

null合并运算符

  1. $BB = 25;
  2. echo isset($BB) ? ($BB) : 'kao';
  3. echo '<hr>';
  4. unset($BB);
  5. echo $BB ?? 'kao';

2.流程控制

当流程控制语句中只有一行代码的时候,可以省略大括号。
模板语法: 就是干掉流程控制中的大括号,将起始大括号用冒号代替,将结束大括号用特殊关键字代替

单分支

  1. $AA = 25;
  2. $BB = $AA;
  3. if ($AA>=20) $BB =$AA*0.2;
  4. if ($AA >= 20) : $BB = $AA *0.2;endif ;
  5. echo '实际重量:',$BB ,'<br>';
  6. echo '<hr>';

二分支

  1. $AA = 15;
  2. if ($AA >= 20){
  3. $BB = $AA*0.2;
  4. }
  5. else {
  6. $BB = $AA;
  7. }
  8. echo '实际重量:',$BB ,'<br>';
  9. $AA = 60;
  10. if ($AA >= 20):
  11. $BB = $AA*0.2;
  12. else:
  13. $BB =$AA;
  14. endif;
  15. echo '实际重量:',$BB ,'<br>';
  16. echo '<hr>';

多分支

  1. $AA = 280;
  2. if ($AA > 50 && $AA < 100 ){
  3. $BB = $AA * 0.8;
  4. }elseif ($AA > 100 && $AA < 200) {
  5. $BB = $AA * 0.7;
  6. }elseif ($AA > 200 && $AA < 300) {
  7. $BB = $AA *0.6;
  8. }else{
  9. $BB = $AA;
  10. }
  11. echo '实际重量:',$BB ,'<br>';
  12. echo '<hr>';
  13. $AA = 180;
  14. if ($AA > 50 && $AA < 100 ):
  15. $BB = $AA * 0.8;
  16. elseif ($AA > 100 && $AA < 200):
  17. $BB = $AA * 0.7;
  18. elseif ($AA > 200 && $AA < 300):
  19. $BB = $AA *0.6;
  20. else:
  21. $BB = $AA;
  22. endif;
  23. echo '实际重量:',$BB ,'<br>';
  24. echo '<hr>';

switch简化多分支

  1. $AA = 280;
  2. switch (true){
  3. case ($AA > 50 && $AA < 100 ):
  4. $BB = $AA * 0.8;
  5. break;
  6. case ($AA > 100 && $AA < 200):
  7. $BB = $AA * 0.7;
  8. break;
  9. case ($AA > 200 && $AA < 300):
  10. $BB = $AA *0.6;
  11. break;
  12. default:
  13. $BB = $AA;
  14. }
  15. echo '实际重量:',$BB ,'<br>';
  16. echo '<hr>';
  17. $AA = 1.4;
  18. $cc = 200;
  19. switch ($AA){
  20. case 1.5:
  21. $dd = $cc *1.5;
  22. break;
  23. case 1.4:
  24. $dd = $cc * 1.4;
  25. break;
  26. case 1.3:
  27. $dd = $cc *1.3;
  28. break;
  29. default:
  30. die('不正常');
  31. }
  32. echo '实际重量:',$dd ,'<br>';
  33. echo '<hr>';
  34. $AA = 1.4;
  35. $cc = 200;
  36. switch ($AA):
  37. case 1.5:
  38. $dd = $cc *1.5;
  39. break;
  40. case 1.4:
  41. $dd = $cc * 1.4;
  42. break;
  43. case 1.3:
  44. $dd = $cc *1.3;
  45. break;
  46. default:
  47. die('不正常');
  48. endswitch;
  49. echo '实际重量:',$dd ,'<br>';
  50. echo '<hr>';

3.循环控制

判断型循环: 入口判断型 while(条件) {…}
进入循环代码之前进行判断,只有条件为真才执行循环体

  1. $fruits = ['苹果','香蕉','葡萄','西瓜','荔枝'];
  2. echo current($fruits);
  3. next($fruits);
  4. echo current($fruits);
  5. next($fruits);
  6. echo current($fruits);
  7. next($fruits);
  8. echo current($fruits);
  9. next($fruits);
  10. echo current($fruits);
  11. while($fruit = current($fruits)){
  12. echo $fruit, '<br>';
  13. next($fruits);
  14. }
  15. reset($fruits);
  16. while($fruit = current($fruits)){
  17. echo $fruit, '<br>';
  18. next($fruits);
  19. }


出口判断型:do{….}while(条件)
循环体内必须要有更新循环条件的语句,否则进入死循环.
do - while 没有对应的模板语法。

  1. do{
  2. echo $fruit, '<br>';
  3. next($fruits);
  4. }while($fruit = current($fruits));


计数型循环: for (循环变量的初始化; 循环条件; 更新循环条件){….}

  1. echo count($fruits);
  2. for ($i = 0; $i < count($fruits);$i++){
  3. echo $fruits[$i], '<br>';
  4. }
  5. // 模板语法
  6. for ($i = 0; $i < count($fruits);$i++):
  7. echo $fruits[$i], '<br>';
  8. endfor;
  9. for ($i = 0; $i < count($fruits);$i++):
  10. // 输出拦截,break提前终止循环
  11. if ($i > 2) break;
  12. echo $fruits[$i], '<br>';
  13. endfor;
  14. for ($i = 0; $i < count($fruits);$i++):
  15. //有选择性的输出,跳过一部分元素
  16. if ($i === 3) continue;
  17. echo $fruits[$i], '<br>';
  18. endfor;



4.总结

  • 掌握三种分支和三种循环。
  • 掌握模板语法的使用。
  • 会判断条件。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议