PHP短if语句,带有continu关键字,并省略else部分

时间:2018-08-10 08:06:06

标签: php conditional-operator

我有一个for循环

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

现在执行时出现错误

  

PHP解析错误:语法错误,出现意外的“继续”(T_CONTINUE)   /var/www/html/all.php,第21行

现在,这给我留下了两个问题:

  1. 是否可以在if语句简短的短句内使用继续关键字?

  2. 对于short if的else部分,可以使用true或false之类的二进制值,如果不使用,那么如果我对else部分没有任何关系,我该如何使用short if语句。

3 个答案:

答案 0 :(得分:7)

continue声明(例如forif),并且必须独立出现。它不能用作表达式的一部分。部分原因是continue不会返回值,但是在表达式中,每个子表达式都必须得到某个值,因此整个表达式都会得到一个值。这就是语句和表达式之间的区别。

cond ? a : b表示如果a为true,则使用值cond,否则使用值b 。如果acontinue,那么那里就没有价值。

true确实会产生一个值(true),因此可以,它可以用作表达式的一部分。

答案 1 :(得分:1)

您不能在简短的if语句中使用continue。简短的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
}

答案 2 :(得分:0)

您可以在if语句中使用continue关键词。 (根据PHP文档)

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