我有这些代码:
<?php
$i=0;
while (true):
echo "test";
$i<4 ? $i++ : break;
endwhile;
?>
错误讯息: 解析错误:语法错误,第5行的C:\ xampp \ htdocs \ data \ index.php中的意外T_BREAK
if条件有语法错误,我真的可以搞清楚。任何人都可以帮忙。非常感谢。
答案 0 :(得分:4)
三元运算符用于赋值或返回值。您无法将break
置于三元操作的else (:)
情况下。
// Assignment
$x = $i<4 ? $i : 0;
// For a value returned into a function argument $i or 0
do_something($i<4 ? $i : 0);
与else
一样,它不能用于包含语言构造的常规break
案例。而是使用常规if()
$i = 0;
while (true):
if ($i<4) {
$i++
}
else {
break;
}
endwhile;
答案 1 :(得分:1)
三元运算符的语法是这样的:
ternary_expression ::= boolean_expression ? expression : expression
您的示例的问题是break
不是表达式而是语句。如果你有一个表达式,你的语法可以工作,虽然它看起来很尴尬。在任何情况下我都建议正常if
。