NEW*_*WEB 1 php null if-statement
我正在尝试简化一些代码。我发现,如果您在 if 语句中分配一个值,但该值最终为 null,则计算出的 if 为 FALSE。
例子:
if($myvar = doSomething()) {   
    echo '$myvar = '.$myvar;
} 
else { 
    echo "was null"; 
}
function doSomething() { 
    $a = null;
    return $a; 
}
上面的脚本将显示“was null”。然而,如果$a = 1,那么它将显示“myvar = 1”。
我试图找到一些有关此行为的文档,但没有成功。我所有的资料来源都很接近,但没有很好地描述。
我的问题:这是预期的行为吗?如果 doSomething() 返回 null,我正在做的事情相当于吗if(null) {...?
编辑:是的,我的意思是 if 语句中的“=”而不是“==”。我要问的是,预计这应该始终返回 false:if($a = null)而这返回 trueif($a = 1)
你正在做的事情是完全符合预期的。赋值表达式的值$a=b就是被赋值的值b。所以,
if($myvar = doSomething()) { ...
相当于
$myvar = doSomething();
if ($myvar) { ...
这种行为与声明完全无关if。该文件在第二段中明确指出:
赋值表达式的值就是被赋值的值。即“$a = 3”的值为3。