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之流程控制的主要内容,如果未能解决你的问题,请参考以下文章