Blogger Information
Blog 94
fans 0
comment 0
visits 92488
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【PHP】PHP 流程控制(while,for,foreach,数组的遍历解构和快速解构)
可乐随笔
Original
2111 people have browsed it

PHP 流程控制

1. 分支结构

//if 单分支
//if 双分支
// 双分支语法糖:三元表达式
echo $age >=18 ? '成年' : '未成年';
// 多分支语法糖

  1. switch(true){
  2. case $age > 18 :
  3. echo '成年';
  4. break;
  5. case $age < 7 :
  6. echo '幼儿园';
  7. break;
  8. default:
  9. echo '这里是默认';
  10. }

2. 循环结构

1.while
2.for
3.forEach:一般用来数据取值
4.三个关键字:break:结束循环; continue:结束本次循环;
5.关联数据建议使用 foreach 进行遍历。
6.foreach 遍历中,直接解构一维数组
7.extract(); 快速解构(隐式解构)

  1. <?php
  2. $data = ['cid' => 1, 'cname' => '新闻360', 'curl' => 'news.php'];
  3. // * 关联数组=>遍历:建议使用 foreach
  4. // ! forEach : 可以遍历任何类型的数组,对象
  5. foreach ($data as $key => $value) {
  6. printf('[%s]=>[%s]<br>', $key, $value);
  7. }
  8. echo '<hr>';
  9. //只关注值
  10. foreach ($data as $value) {
  11. printf('[%s]<br>', $value);
  12. }
  13. echo '<hr>';
  14. //while
  15. // $i = 0;
  16. // while ($i < count($data)) {
  17. // //key():当前数组元素的键;current():当前数据元素的值;
  18. // printf('[%s]=>[%s]<br>', key($data), current($data));
  19. // //下移指针,指向后一个元素
  20. // next($data);
  21. // $i++;
  22. // }
  23. // echo '<hr>';
  24. // reset():重置数组,因为数组指针已经指向了最后一个
  25. // reset($data);
  26. //for
  27. // for ($i = 0; $i < count($data); $i++) {
  28. // //key():当前数组元素的键;current():当前数据元素的值;
  29. // printf('[%s]=>[%s]<br>', key($data), current($data));
  30. // //下移指针,指向后一个元素
  31. // next($data);
  32. // }
  33. // echo '<hr>';
  34. // * while ,for 对于关联数据,非常别扭
  35. //数组查询 => 二维数组
  36. $data = [
  37. ['id' => 4, 'title' => '文章标题1', 'url' => 'aaaa'],
  38. ['id' => 5, 'title' => '文章标题2', 'url' => 'bbbb'],
  39. ['id' => 6, 'title' => '文章标题3', 'url' => 'cccc'],
  40. ];
  41. foreach ($data as $value) {
  42. echo print_r($value, true) . '<br>';
  43. // ,true 表示将数组转为字符串,方便拼接后面的 <br>
  44. }
  45. echo '<hr>';
  46. // 不打印第一条
  47. foreach ($data as $key => $value) {
  48. if ($key == 0) {
  49. continue; //结束当前,进入下一轮
  50. //break;结束循环,直接跳出
  51. }
  52. echo print_r($value, true) . '<br>';
  53. // ,true 表示将数组转为字符串,方便拼接后面的 <br>
  54. }
  55. echo '<hr>';
  56. // foreach 遍历中,直接解构一维数组
  57. foreach ($data as list('id' => $id, 'title' => $title, 'url' => $url)) {
  58. printf('%d:%s,%s<br>', $id, $title, $url);
  59. }
  60. echo '<hr>';
  61. // extract(); 快速解构(隐式解构)
  62. foreach ($data as $value) {
  63. extract($value);
  64. printf('%d:%s,%s<br>', $id, $title, $url);
  65. }

3. 流程控制的替换写法: 模板语法

  1. <?php
  2. // 流程控制的替换写法: 模板语法
  3. // 为了在与 html 代码混编时,干掉大括号,全用“冒号”代替
  4. if (true) {
  5. echo 'xxx';
  6. } else {
  7. echo 'xxx';
  8. };
  9. // 替换语法
  10. if (true) :
  11. echo 'xxx';
  12. else :
  13. echo 'xxx';
  14. endif;
  15. switch (true):
  16. case 'xxx';
  17. case 'xxx';
  18. default:
  19. 'xxx';
  20. endswitch;
  21. while (true) :
  22. endwhile;
  23. for (;;) :
  24. endfor;
  25. foreach($data as $k=>$v):
  26. echo 'xxx';
  27. endforeach;
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