PHP内联IF

时间:2013-06-10 02:10:29

标签: php if-statement syntax

首先,PHP不是我的强项......虽然不确定是什么!

我在PHP手册中看到了一个例子:

<?php
$var = TRUE;
echo $var==TRUE ? 'TRUE' : 'FALSE'; // get TRUE
echo $var==FALSE ? 'TRUE' : 'FALSE'; // get FALSE
?>

我正在尝试将类似的东西整合为单行输出的一部分。我的行看起来像这样:

echo "...text..." . $db_field['late']==0 ? ' ' : $db_field['late']  . "...more text...";

从逻辑上讲,我想要做的是:如果'late'= 0,那么显示其他任何内容都不会显示'late'的内容。

我只是想变得太聪明了吗?

提前致谢

格雷姆

2 个答案:

答案 0 :(得分:23)

因为三元运算符?:的优先级非常低。要解决此问题,请使用括号

echo "...text..." . ($db_field['late']==0 ? ' ' : $db_field['late']) . "...more text...";

PHP Operator precedence

答案 1 :(得分:3)

echo "...text..." . ( $db_field['late']==0 ? ' ' : $db_field['late'] )  . "...more text...";