PHP继续 - 删除对变量数字参数的支持(例如,继续$ num)

时间:2014-11-19 04:25:02

标签: php loops continue php-5.4

http://php.net/manual/en/control-structures.continue.php

Changelog表示自5.4起,发生以下变化: 删除了传入变量(例如$ num = 2; continue $ num;)作为数字参数的功能。

为什么他们会这样做?

所以,基本上,这现在无效:

for ($i = 0; $i < 10; $i++) {
    $num = 5;
    continue $num;
}

我是否理解正确?他们为什么要那样做?我只是想不出一个理由。

2 个答案:

答案 0 :(得分:1)

$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";
}

以上示例来自PHP Manual,继续跳过echo "This never gets output.<br />\n";echo "Neither does this.<br />\n";语句,continue 3;表示要继续的循环编号

for ($i = 0; $i < 10; $i++) {
    $num = 5;
    continue ;
    echo $num;
}

以上内容将跳过$num

的打印

答案 1 :(得分:0)

搜索替代功能或类似功能,以便能够将动态变量传递给 继续; ,并且接受的答案与问题无关,

我发现了一种可行的解决方法:

$totalLoops = 20;
$skipLoops = 5;
$cnt = 0;
while ($cnt < $totalLoops){
    ++$cnt;  
    if ($cnt <= $skipLoops){continue;}
    echo "Next number is: $cnt<br>";
}

$ skipLoops 更改为您要跳过的循环次数,您可以选择动态继续。