【问题标题】:How to fix my PHP inline if using ternary operator?PHP 内联 IF
【发布时间】:2013-06-05 15:30:17
【问题描述】:

首先,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 then display nothing else 显示 'late' 的内容。

我是不是太聪明了?

提前致谢

格雷姆

【问题讨论】:

    标签: php if-statement syntax


    【解决方案1】:

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

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

    PHP Operator precedence

    【讨论】:

    • 完美。工作了一个款待。不知道什么是“三元运算符”,但谢谢。
    • 三元运算符就是你所说的“内联 if”
    【解决方案2】:
    echo "...text..." . ( $db_field['late']==0 ? ' ' : $db_field['late'] )  . "...more text...";
    

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2011-06-26
      • 2019-03-01
      • 1970-01-01
      相关资源
      最近更新 更多