PHP中“break”或“continue”后的数字是什么意思?

有人可以请示例解释,什么是循环break 2continue 2在PHP中? 这是什么意思呢,在breakcontinue之后是一个号码?

 $array = array(1,2,3); foreach ($array as $item){ if ($item == 2) { break; } echo $item; } 

输出“1”,因为在echo能够打印“2”之前,循环被永久破坏

 $array = array(1,2,3); foreach ($array as $item){ if ($item == 2) { continue; } echo $item; } 

输出13因为第二次迭代已通过

 $numbers = array(1,2,3); $letters = array("A","B","C"); foreach ($numbers as $num){ foreach ($letters as $char){ if ($char == "C") { break 2; // if this was break, o/p will be AB1AB2AB3 } echo $char; } echo $num; } 

输出AB由于break 2 ,这意味着这两个语句很早就被打破了。 如果这只是break ,输出将是AB1AB2AB3

 $numbers = array(1,2,3); $letters = array("A","B","C"); foreach ($numbers as $num){ foreach ($letters as $char){ if ($char == "C") { continue 2; } echo $char; } echo $num; } 

会输出ABABAB ,因为continue 2 :每次都会传递外层循环。

换句话说, continue停止当前的迭代执行,但让另一个运行,而break完全停止整个语句。
所以我们可以说continue只适用于循环,而break可以用在其他语句中,比如switch

数字表示受影响的嵌套语句的数量。
如果有两个嵌套的循环,内部的一个会打破内部的循环(但是这样做没什么意义,因为内部循环将在外部循环的下一次迭代中再次启动)。 在内部循环中break 2将打破两者。

这个数字只是说“有多less范围跳出来”

 <?php for($i = 0; $i < 10; ++$i) { for($j = 0; $j < 10; ++$j) { break 2; } } 

$ i和$ j将是0

引用手册:

继续接受一个可选的数字参数,告诉它应该跳过多less级别的封闭循环。

同样是rest。

break接受一个可选的数字参数,告诉它有多less嵌套的封闭结构被分解出来。

 <?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list(, $val) = each($arr)) { if ($val == 'stop') { break; /* You could also write 'break 1;' here. */ } echo "$val<br />\n"; } /* Using the optional argument. */ $i = 0; while (++$i) { switch ($i) { case 5: echo "At 5<br />\n"; break 1; /* Exit only the switch. */ case 10: echo "At 10; quitting<br />\n"; break 2; /* Exit the switch and the while. */ default: break; } } ?> 

更多的rest的例子

继续接受一个可选的数字参数,告诉它应该跳过多less级别的封闭循环。 默认值是1,从而跳到当前循环的末尾。

 <?php while (list($key, $value) = each($arr)) { if (!($key % 2)) { // skip odd members continue; } do_something_odd($value); } $i = 0; while ($i++ < 5) { echo "Outer<br />\n"; while (1) { echo "Middle<br />\n"; while (1) { echo "Inner<br />\n"; continue 3; } echo "This never gets output.<br />\n"; } echo "Neither does this.<br />\n"; } ?> 

更多的例子继续

break:打破最内层循环(从循环中退出)

break 2:打破2个嵌套级别循环(从2个嵌套循环中退出)

继续:强制循环从下一次迭代中使用,而不执行其余的循环代码

继续2:强制循环从下面的2次迭代中使用,而不执行其余的循环代码

当我们遇到$array值为5时退出循环

  break $array(4,5,8); for ($i=0 ;$i < 10 $i ++) { if ($array[$i]==5) { break; } } 

rest(n)

当我们在$ array中遇到值5时,退出两个循环;

 for ($i=0 ;$i < 10 $i ++) { for($j=0; $j <10; $j++) { if ($array[$i][$j]==5) { break 2; } } } 

继续

当值为5时将打印消息;

 for($i=0; $i<10; $i++) { if ($array[$i] != 5) { continue;// will reach at the first line from here which is for($i=0;..... } echo 'This is five'; } 

}