我有一个for循环
for ($x=1; $x<=5; $x++){
($x == 3)? continue : true;
//some code here
}
现在执行时出现错误
PHP解析错误:语法错误,出现意外的“继续”(T_CONTINUE) /var/www/html/all.php,第21行
现在,这给我留下了两个问题:
是否可以在if语句简短的短句内使用继续关键字?
对于short if的else部分,可以使用true或false之类的二进制值,如果不使用,那么如果我对else部分没有任何关系,我该如何使用short if语句。
答案 0 :(得分:7)
continue
是声明(例如for
或if
),并且必须独立出现。它不能用作表达式的一部分。部分原因是continue
不会返回值,但是在表达式中,每个子表达式都必须得到某个值,因此整个表达式都会得到一个值。这就是语句和表达式之间的区别。
cond ? a : b
表示如果a
为true,则使用值cond
,否则使用值b
。如果a
是continue
,那么那里就没有价值。
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";
}
?>