Jak*_*kob 1 php boolean variable-assignment operator-precedence
当我评估下面的表达式时,结果完全不同,具体取决于评估顺序以及是否分配值:
$a = true;
$b = false;
var_dump($a and $b); // false
$c = $a and $b;
var_dump($c); // true
$d = $b and $a;
var_dump($d); // false
Run Code Online (Sandbox Code Playgroud)
我完全难过了.为什么会这样?
=
优先级高于and
.所以$c = $a and $b;
是一样的($c = $a) and $b;
,$ a的值被分配给$ C.这&&
与其具有更高的优先级不同=
,因此$c = $a && $b
评估为$c = ($a && $b)
;