php如果条件语法错误

时间:2012-01-15 18:54:40

标签: php syntax if-statement

我有这些代码:

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

错误讯息: 解析错误:语法错误,第5行的C:\ xampp \ htdocs \ data \ index.php中的意外T_BREAK

if条件有语法错误,我真的可以搞清楚。任何人都可以帮忙。非常感谢。

2 个答案:

答案 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