首先,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'的内容。
我只是想变得太聪明了吗?
提前致谢
格雷姆
答案 0 :(得分:23)
因为三元运算符?:
的优先级非常低。要解决此问题,请使用括号
echo "...text..." . ($db_field['late']==0 ? ' ' : $db_field['late']) . "...more text...";
答案 1 :(得分:3)
echo "...text..." . ( $db_field['late']==0 ? ' ' : $db_field['late'] ) . "...more text...";