博客列表 >【PHP】PHP 流程控制(while,for,foreach,数组的遍历解构和快速解构)

【PHP】PHP 流程控制(while,for,foreach,数组的遍历解构和快速解构)

可乐随笔
可乐随笔原创
2022年12月12日 23:08:072110浏览

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;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议