условный оператор — PHP короткий оператор if с ключом продолжения и пропуском части else

У меня есть для цикла, как

for ($x=1; $x<=5; $x++){
($x == 3)? continue : true;
//some code here
}

сейчас на исполнении я получаю ошибку

Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное продолжение (T_CONTINUE) в
/var/www/html/all.php в строке 21

Теперь это оставит меня с 2 вопросами:

  1. Могу ли я использовать ключевое слово continue в коротком выражении if?

  2. Для остальной части короткого if, можно ли использовать двоичные значения, такие как true или false, и если нет, то как я могу использовать короткое выражение if, если мне нечего делать для части else.

4

Решение

continue это заявление (лайк for, или же if) и должен появиться автономно. Он не может быть использован как часть выражение. Отчасти потому что continue не вернуть значение, но в выражении каждое подвыражение должно приводить к некоторому значению, поэтому общее выражение приводит к значению. В этом разница между утверждением и выражением.

cond ? a : b средства использовать стоимость a если cond верно, иначе используйте значение b. Если a является continueТам нет никакой ценности.

true приводит к значению (true), так что да, это может быть использовано как часть выражения.

6

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

Вы не можете использовать 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
}
1

Вы можете использовать ключевое слово continue внутри оператора if, как это; (согласно документации PHP)

<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>
0