PHP如果条件语法错误

问题描述:

我有这些代码:PHP如果条件语法错误

<?php 
$i=0; 
while (true): 
    echo "test"; 
    $i<4 ? $i++ : break; 
endwhile; 
?> 

错误消息: 解析错误:语法错误,在C意想不到T_BREAK:\ XAMPP \ htdocs中\上线数据\的index.php 5

if语句存在语法错误,我真的可以弄清楚什么。任何人都可以帮忙。非常感谢。

+1

当人们被告知'? :'是“就像if-else一样” – Esailija 2012-01-15 19:03:52

三元运算符用于赋值或返回一个值。您不能将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); 

它不能用于含有一种语言结构,如你与break做定期else情况。相反,使用常规的if()

$i = 0; 
while (true): 
    if ($i<4) { 
    $i++ 
    } 
    else { 
    break; 
    } 
endwhile; 
+0

希望你不介意编辑,否则你的支持不一致。 – Esailija 2012-01-15 19:06:59

+0

我认为使用三元表达式的返回值不是强制性的。因此,它可以用作独立声明。 – linepogl 2012-01-15 19:08:08

的语法三元运算符是这样的:

你的榜样的问题是,break不是一个表达式,但声明。如果你有一个表达式,你的语法可以工作,尽管它看起来很尴尬。无论如何,我会建议一个正常的if