我正在使用'if-else'语句来更改div元素的类,但是我从else子句中得到结果,而if子句中的结果处于状态。
我正在使用PHP 5.6。 当我调试该语句时,我得到了变量的这些值:
- $row['gepland'] < new DateTime() : true
- new dateTime() (DateTime) : 2019-01-23 11:05:51.000000
- $row['gepland'] (string) : 2019-03-11 00:00:00
- new DateTime($row['gepland']) < new DateTime(): false
- $class_gepland (string) : bg-warning p-3
首先,当我使用字符串变量$row['gepland']
时,它返回true
,因此我在DateTime对象new DateTime($row['gepland'])
中更改了该值。
现在,语句的结果按预期返回false
。
到目前为止还算不错,但是变量$class_gepland
仍然是'bg-warning p-3'
,如调试结果的最后一行所示。
if (new DateTime($row['gepland']) < new DateTime()){
$class_gepland = 'bg-warning p-3';
}
else{
$class_gepland = 'bg-success p-3';
}
因此,尽管该语句返回false,但是$class_gepland
是'bg-warning p-3'
而不是我所期望的'bg-success p-3'
。
答案 0 :(得分:0)
我很难复制它。当geplan值较大时(将来),比较的结果为false,bg成功的p-3为正确值。
$row['gepland'] = "2019-03-11 00:00:00";
$class_gepland = false;
if (new DateTime($row['gepland']) < new DateTime()){
$class_gepland = 'bg-warning p-3';
}
else {
$class_gepland = 'bg-success p-3';
}
var_dump($class_gepland);
输出:
string(14) "bg-success p-3"