我的PHP if else语句自己工作,但不回显


My PHP if else statement work by it self but does not echo

我试图用我的PHP代码做以下操作,但它似乎没有呈现。

我不确定我做得对不对。谁能告诉我哪里错了吗?

<?php
    $date1=date_create("2016-05-09 12:00:00"); // due date
    $date2=date_create("2016-05-10 12:00:00");// today date
    $diff=date_diff($date1,$date2);
    $due = ( if ($date1>$date2 or($date1==$date2)) 
             { 
                echo $diff->format("%a        days");
             }
             else 
             {
                echo "its 0";
             });
?>
测试用例:

<?php echo "$due"; ?> // not working 

如果您试图将结果存储在变量中,则不要使用echo。相反,使用三元操作符condition ? value_if_true: value_if_false

改变:

$due=( if ($date1>$date2 or($date1==$date2)) 
            { echo $diff->format("%a days");}
             else {echo "its 0";}
      );

:

$due = $date1>=$date2 ? $diff->format("%a days"): "it's 0";

打开手册并向下滚动到三元操作符查看更多示例

正确的方法是:

$due = $date1 >= $date2 ? $diff->format("%a days") : 'its 0';
# ---------IF TRUE------^->THEN--------------------^->ELSE.

这被称为三元操作符,你要做的是将语法绑定到一个变量。

它的作用如下:

if($date1 >= $date2){
  $due = $diff->format("%a days");
} else {
  $due = 'its 0';
}