Blogger Information
Blog 100
fans 8
comment 2
visits 149881
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP运算符、分支、循环详解
lilove的博客
Original
686 people have browsed it

运算符

  • 比较: == === !==

  • 太空船(组合比较): <=>

  • 逻辑: && ||

  • 三元:? :

  • null合并: ??

示例:

  1. <?php
  2. // 1.比较运算符“==”,“===”,“!==”
  3. $age = 10;
  4. $years = 18;
  5. // 使用比较要用“==”或“===”,“=”是赋值
  6. var_dump($age == $years);
  7. var_dump($age === $years);
  8. // 非运算符
  9. var_dump($age !== $years);
  10. echo '<hr>';
  11. if ($age === $years) {
  12. echo '完全相等';
  13. } else {
  14. echo '不完全相等';
  15. }
  16. echo '<hr>';
  17. // 操作类型不一致的值用“==”做比较时两边的值会自动转换
  18. var_dump(18 == '18');
  19. var_dump(18 == 18);
  20. // 用“===”做比较时两边的值类型也必须一致
  21. var_dump(18 === '18');
  22. var_dump(18 === 18);
  23. echo '<hr>';
  24. // 2.太空船运算符(组合比较):“<=>”,返回结果为-1,0,1
  25. var_dump(18 <=> 28);
  26. var_dump(18 <=> 18);
  27. var_dump(18 <=> 10);
  28. echo '<hr>';
  29. // 3.逻辑运算符:“&&”,“||”
  30. $name = 20;
  31. // 必须全部满足才返回true,如果有个条件为false,就不会计算后面的条件了,叫做短路求值
  32. if ($name > 20 && $name < 30) {
  33. echo '成立';
  34. } else {
  35. echo '不成立';
  36. }
  37. // 只要满足其中一个条件即返回true
  38. if ($name > 10 || $name < 20) {
  39. echo '成立';
  40. } else {
  41. echo '不成立';
  42. }
  43. echo '<hr>';
  44. // 4.三元运算符:“? :”
  45. var_dump($name > 10 && $name !== 20 ? '成立' : '不成立');
  46. echo '<hr>';
  47. // 合并运算:“??”
  48. // $pwd = '135642';
  49. if (isset($pwd)) {
  50. echo sha1($pwd);
  51. } else {
  52. echo '密码错误';
  53. }
  54. echo '<hr>';
  55. // 下面的代码表示如果$pwd不存在则输出'密码错误'
  56. echo $pwd ?? '密码错误';

运行结果


分支

  • 单分支示例:
  1. // 1.单分支
  2. // 当流程控制语句中只有一行代码时,可以省略大括号
  3. $age = 60;
  4. if ($age >= 58) {
  5. echo '老年人';
  6. }
  7. // 可以写成
  8. if ($age >= 58) echo '老年人';
  9. // 还可以用模板语法写成(模板语法中用“:和end标志”代表大括号):
  10. if ($age >= 58) :
  11. echo '老年人';
  12. endif;
  • 双分支示例:
  1. // 2.双分支
  2. if ($age !== 60) {
  3. echo '还不是老年人呢';
  4. } else {
  5. echo '年龄' . $age . '岁了';
  6. }
  7. // 模板语法来写:
  8. if ($age !== 60) :
  9. echo '还不是老年人呢';
  10. else :
  11. echo '年龄' . $age . '岁了';
  12. endif;
  • 多分支示例:
  1. // 3.多分支
  2. if ($age >= 1 && $age < 20) {
  3. echo '年轻人';
  4. } elseif ($age >= 20 && $age < 40) {
  5. echo '青年人';
  6. } elseif ($age >=40 && $age < 60) {
  7. echo '中年人';
  8. } elseif ($age >=60 && $age < 80) {
  9. echo '老年人';
  10. } else {
  11. echo '外星人';
  12. }
  13. // 用模版语法来写:
  14. if ($age >= 1 && $age < 20) :
  15. echo '年轻人';
  16. elseif ($age >= 20 && $age < 40) :
  17. echo '青年人';
  18. elseif ($age >=40 && $age < 60) :
  19. echo '中年人';
  20. elseif ($age >=60 && $age < 80) :
  21. echo '老年人';
  22. else :
  23. echo '外星人';
  24. endif;
  • 简化多分支示例:
  1. // 还可以用switch简化来写(通常用于单值判断):
  2. switch ($age) {
  3. case $age >= 1 && $age < 20 :
  4. echo '年轻人';
  5. break;
  6. case $age >= 20 && $age < 40 :
  7. echo '青年人';
  8. break;
  9. case $age >= 40 && $age < 60 :
  10. echo '中年人';
  11. break;
  12. case $age >= 60 && $age < 80 :
  13. echo '老年人';
  14. break;
  15. default : '外星人';
  16. die('不是人');
  17. }
  18. // 模板语法:
  19. switch ($age) :
  20. case $age >= 1 && $age < 20 :
  21. echo '年轻人';
  22. break;
  23. case $age >= 20 && $age < 40 :
  24. echo '青年人';
  25. break;
  26. case $age >= 40 && $age < 60 :
  27. echo '中年人';
  28. break;
  29. case $age >= 60 && $age < 80 :
  30. echo '老年人';
  31. break;
  32. default : '外星人';
  33. die('不是人');
  34. endswitch;

循环

  • while:入口判断循环 while(条件){...}

  • do while:出口判断循环 do{...}while(条件),没有模板语法

  • for:计数循环 for(循环变量初始化, 循环条件, 更新循环条件){...}

示例:

  1. <?php
  2. // 模拟一个数组
  3. $data = ['name' => '小明', '年龄' => 18, '性别' => '男'];
  4. // 1.入口判断循环:while(条件){...},循环开始之前先判断条件,为真才执行
  5. // current()输出数组中当前元素的值,不会移动指针
  6. // next()将指针下移一位
  7. while ($database = current($data)) {
  8. echo $database . ',';
  9. next($data);
  10. }
  11. echo '<br>';
  12. // 此时指针已被调至末尾,要重置指针用reset()
  13. reset($data);
  14. // 模板语法
  15. while ($database = current($data)) :
  16. echo $database . ',';
  17. next($data);
  18. endwhile;
  19. echo '<hr>';
  20. reset($data);
  21. // 2.出口判断循环:do{...}while(条件),没有模板语法
  22. do {
  23. echo $database . ',';
  24. next($data);
  25. }
  26. while (
  27. $database = current($data)
  28. );
  29. echo '<hr>';
  30. // 3.计数循环:for(循环变量初始化, 循环条件, 更新循环条件){...}
  31. // count()计算数组中的单元数目,或对象中的属性个数
  32. $array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  33. // 数组遍历
  34. // for ($i = 0; $i < count($array); $i++) {
  35. // echo $array[$i] . '<br>';
  36. // }
  37. echo '<hr>';
  38. for ($i = 0; $i < count($array); $i++) {
  39. // 中断,输出1-6,7不会输出
  40. // if ($i === 6) break;
  41. // 跳过元素3、5,输出其他的元素
  42. if ($i === 4 || $i === 2) continue;
  43. echo $array[$i] . '<br>';
  44. }

总结

  1. 模板语法在渲染前端页面时使用;
  2. 本章常用函数:isset(),unset(),sha1(),current(),next(),reset(),count();
  3. 太空船运算符和Null合并运算符,7.0版本以上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