PHP中“中断”或“继续”之后的数字是啥意思?

Posted

技术标签:

【中文标题】PHP中“中断”或“继续”之后的数字是啥意思?【英文标题】:What is meant by a number after "break" or "continue" in PHP?PHP中“中断”或“继续”之后的数字是什么意思? 【发布时间】:2011-07-07 06:09:29 【问题描述】:

有人可以举例说明循环break 2continue 2php 中的含义吗? breakcontinue后面跟一个数字是什么意思?

【问题讨论】:

【参考方案1】:

数字只是说“要跳出多少范围”

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

$i 和 $j 将为 0

引用the manual:

continue 接受一个可选的数字参数,告诉它应该跳到多少层封闭循环。

休息也是如此。

【讨论】:

我更喜欢你的回答,因为它简短而中肯。【参考方案2】:

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;
        
    

中断(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';

【讨论】:

【参考方案3】:
$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

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

【讨论】:

【参考方案4】:

break 接受一个可选的数字参数,告诉它有多少嵌套的封闭结构要被打破。

<?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;
    

?>

More examples of break

continue 接受一个可选的数字参数,告诉它应该跳到末尾的封闭循环的层数。默认值为 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";

?>

More examples of continue

【讨论】:

以上是关于PHP中“中断”或“继续”之后的数字是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

admin”或“1”=“1”是啥意思?

php的$nbsp是啥

在php中定界符是啥?

icpc(或我猜是gcc)的预处理输出中的包含路径/数字是啥意思?

Excel 中函数count是啥意思?

hal库中中断服务函数和回调函数是啥意思,他们的的关系是啥呢?