PHP之流程控制

Posted Monkey聊架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP之流程控制相关的知识,希望对你有一定的参考价值。

php之流程控制

  • 常用的PHP数组循环的操作语法有哪些?各种循环的区别是什么?

常用的PHP数组循环的语法有三种: 1. 使用 for 循环 , 2. 使用 foreach 循环, 3. 使用 while list each 组合循环三种。
区别:
for 循环只能遍历索引数组;
foreach 循环可以遍历索引和关联数组;
while each list 组合可以遍历索引数组和关联数组;
foreach 和 while each list 组合循环的区别是:
使用 foreach 循环遍历数组会对数组进行 reset 操作,将 指针重置 ; 而使用 while each list 组合遍历数组不会将数组指针重置;

分支控制流程

  • if…elseif…else…

elseif : 在 elseif 语句中只能有一个表达式为 true , 即在 elseif 语句中只能有一个语句块被执行,多个 elseif 从句是排斥的关系;
使用elseif语句有一个基本的原则,总把有限范围小的条件放在最前面(可能性较大的尽量写在前面);

  • switch…case…

和 if 不同的是,switch 后面的控制表达式的数据类型只能是 整型浮点型字符串 (标量类型),注意 switch...case... 是 松散比较。

  • continue 和 break 的区别:

continue : 在循环中使用 continue 表示跳过本次循环中的剩余代码,并在条件求值为真时进行下次循环;
continue 可以接受一个可选的 数字参数 来决定跳过几重循环到循环结尾,默认是1;

 1while (list ($key, $value) = each($arr)) {
2    if (!($key % 2)) { // skip odd members
3        continue;
4    }
5    do_something_odd($value);
6}
7
8$i = 0;
9while ($i++ < 5) {
10    echo "Outer<br />\n";
11    while (1) {
12        echo "Middle<br />\n";
13        while (1) {
14            echo "Inner<br />\n";
15            continue 3;
16        }
17        echo "This never gets output.<br />\n";
18    }
19    echo "Neither does this.<br />\n";

break : 可以结束当前 for , if , while , foreach 结构的执行;
break 也可以接受一个可选数字参数来决定 跳出几重循环;

 1$arr = array('one''two''three''four''stop''five');
2while (list (, $val) = each($arr)) {
3    if ($val == 'stop') {
4        break;    /* You could also write 'break 1;' here. */
5    }
6    echo "$val<br />\n";
7}
8
9/* 使用可选参数 */
10
11$i = 0;
12while (++$i) {
13    switch ($i) {
14    case 5:
15        echo "At 5<br />\n";
16        break 1;  /* 只退出 switch. */
17    case 10:
18        echo "At 10; quitting<br />\n";
19        break 2;  /* 退出 switch 和 while 循环 */
20    default:
21        break;
22    }
23}
  • if…elseif…else 和 switch…case… 效率比较

如果条件比较多,或者很复杂的,或者很多次的循环中,switch 会更快一些;
原因:switch...case... 底层会生成一个跳转表[索引表],直接跳转到对应的 case 中, 所以特定情况下 switch...case... 会更快一些;



以上是关于PHP之流程控制的主要内容,如果未能解决你的问题,请参考以下文章

PHP入门之流程控制

PHP基础知识之流程控制的替代语法

PHP之流程的控制

Shell脚本编程之流程控制

JavaScript基础之流程控制语句

python基础之流程控制