简化if语句并使用continue

3

我非常喜欢使用PHP的简写if,但当我尝试在其中使用continue命令时,我的IDE会将其标记为错误(语法错误,意外的continue)。为了找出原因,我在浏览器中运行了以下代码,但没有得到任何错误信息。

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);

echo 'test<br /><br />';

foreach(range(1,10) as $i) {
    $i == '6' ? continue : '';
    echo $i.'<br />';
}
?>

这段代码并没有输出任何内容。然而,如果我将包含continue语句的那一行注释掉,它就能按预期工作。

我到底错过了什么?


2
三元运算符不是“简写的if”!它是条件赋值。 - undefined
2个回答

7
你不能使用三目运算符来完成这个操作。
将你的代码更改为以下内容:
if ($i == 6) continue ;

2
这种简写符号是在设置变量时使用的。因此,您需要执行以下操作:
$i = continue;

我想你可以这样触发继续执行:

$i();

但这不是你想要的。

同时,在循环内部不应该修改迭代器!

所以只需使用

if ($whatever) continue;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接