【发布时间】:2010-07-15 22:19:18
【问题描述】:
写完我对how to assign to multiple variables in a ternary operator问题的回复后,我实际上尝试了我写的代码:
true ? $w = 100 xor $r = 200 : $w = 300 xor $r = 400;
var_dump($w); var_dump($r);
(别管它没用,这是理论上的。)
现在,根据operator precedence,我希望 PHP 会这样做:
true ? $w = 100 xor $r = 200 : $w = 300 xor $r = 400 ;
(true) ? ( $w = 100 xor $r = 200 ) : ( $w = 300 xor $r = 400 );
(true) ? (($w = 100) xor ($r = 200)) : (($w = 300) xor ($r = 400));
当计算三元运算符的第一部分时,应该输出:
int 100
int 200
但是我得到了
int 100
int 400
这对我来说很奇怪,因为它需要执行 三元运算符的两个部分。
假设这是我的想法有问题。
【问题讨论】: