У меня есть для цикла, как
for ($x=1; $x<=5; $x++){
($x == 3)? continue : true;
//some code here
}
сейчас на исполнении я получаю ошибку
Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное продолжение (T_CONTINUE) в
/var/www/html/all.php в строке 21
Теперь это оставит меня с 2 вопросами:
Могу ли я использовать ключевое слово continue в коротком выражении if?
Для остальной части короткого if, можно ли использовать двоичные значения, такие как true или false, и если нет, то как я могу использовать короткое выражение if, если мне нечего делать для части else.
continue
это заявление (лайк for
, или же if
) и должен появиться автономно. Он не может быть использован как часть выражение. Отчасти потому что continue
не вернуть значение, но в выражении каждое подвыражение должно приводить к некоторому значению, поэтому общее выражение приводит к значению. В этом разница между утверждением и выражением.
cond ? a : b
средства использовать стоимость a
если cond
верно, иначе используйте значение b
. Если a
является continue
Там нет никакой ценности.
true
приводит к значению (true
), так что да, это может быть использовано как часть выражения.
Вы не можете использовать continue
внутри короткого оператора if. Короткие операторы if для возврата значений, как это
$val = $bool ? $one : $two;
Сейчас, $val
будет иметь значение $one
или значение $two
в зависимости от истинности значения $bool
,
continue
не имеет значения, поэтому его нельзя использовать в кратком выражении if. Используйте нормальный оператор if для этой операции.
В этом случае я бы сделал это так:
for ($x=1; $x<=5; $x++){
if($x == 3) continue;
//some code here
}
Вы можете использовать ключевое слово continue внутри оператора if, как это; (согласно документации PHP)
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>