否定运算符的优先级高于赋值运算符,为什么它在表达式中较低?
例如
if (!$var = getVar()) {
Run Code Online (Sandbox Code Playgroud)
在前面的表达式中,赋值首先发生,后面的否定.不应该首先否定否定,然后是作业?
Nik*_*kiC 45
左手边= 必须是variable.$var是一个variable,而!$var不是(它是一个expr_without_variable).
因此PHP以唯一可能的方式解析表达式,即as !($var = getVar()).优先权永远不会在这里发挥.
优先级=相关的一个例子是:
$a = $b || $c // ==> $a = ($b || $c), because || has higher precedence than =
$a = $b or $c // ==> ($a = $b) or $c, because or has lower precedence than =
Run Code Online (Sandbox Code Playgroud)