如果语句分配并使用PHP内部的变量



我想知道是否可以在使用php中分配的同一 if语句中使用变量。

例如:

if ($start = strtotime($_POST['date']) && $start <= time()) {
    $error = 'You must choose a date in the future.';
}

该代码似乎对我不起作用,但是我不明白为什么不应该这样做,因为我知道变量可以这样分配,对我来说,对于以下变量而言,这是有意义的能够访问它。

您正在遇到操作员优先问题。&&=具有更高的优先级,因此被处理为:

if ($start = (strtotime($_POST['date']) && $start <= time())) {

这直到&&表达式完成后才分配给$start,这意味着它将尝试在分配之前在比较中使用$start。它还为$start分配了布尔 true/false值,这显然没有用。

将括号放在分配周围,或使用较低的优先级and操作员:

if (($start = strtotime($_POST['date'])) && $start <= time()) {
if ($start = strtotime($_POST['date']) and $start <= time()) {

最新更新