циклы — PHP Continue — удалена поддержка переменного числового аргумента (например, continue $ num)

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

Список изменений говорит, что по состоянию на 5.4 произошло следующее изменение:
Удалена возможность передавать переменные (например, $ num = 2; continue $ num;) в качестве числового аргумента.

С какой стати они это сделали?

Так что, в принципе, это теперь недействительно:

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

Я правильно понимаю? Почему они это сделали? Я просто не могу придумать причину.

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 продолжение пропускает 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

Другие решения

Поиск альтернативной функции или аналога для возможности передачи динамической переменной Продолжить; и принятый ответ нигде не связан с вопросом,

Я нашел обходной путь, который работает вместо этого:

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

Изменить $ skipLoops сколько циклов вы хотите пропустить, и у вас есть альтернатива динамического продолжения.

0

По вопросам рекламы [email protected]