我想知道是否可以在使用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()) {