Is
$a = 1;
$b = $a;
等同于编写这个吗?
$a = $b = 1;
第二个示例无论$a和$b是否已经分配了值,都将1作为值放入它们。
是的,PHP会把1放到$b里,然后将$b的值放入$a,即1。
由于第一次赋值是$b = 1,下一步是$a = $b,因此没有歧义。
赋值表达式的值是被赋的值。也就是说,"$a = 3" 的值是 3。这使你能够做一些巧妙的事情:
<?php
$a = ($b = 4) + 5; // $a is equal to 9 now, and $b has been set to 4.
?>
所以,回答你的问题,赋值操作$b = 1的结果是1,因此,$a = $b = 1会将$b = 1的值(也就是1)赋给$a。
然而,滥用这种写法可能导致代码难以阅读。
$x++-2/$b+=-$x++(^2*2)+=5- Mike B$dude = $wheres = $my = $car = 0;是可以的。$dude = $wheres = $my = $car + 1 = 0;不可以。 - Mike B