这是我(直觉)的理解,在PHP中对整数类型的变量使用加法赋值运算符+=
会产生加法的结果,同时增加左边的操作数同时右侧操作数的值。加法赋值不会在条件内赋值
这种理解似乎是错误的,因此我的问题。考虑下面的代码片段:
$itr = 10;
$incr = 10;
if ($itr += $incr > 10) { // evaluates as true...
echo $itr; // but value of $itr remains unchanged
}
为什么它输出10而不是20?
同样的情况,采用三段式:
echo ($itr += $incr > 10) ? $itr : 'neverhere'; // prints 10
// Note: I know that parentheses aren't really necessary here, it's just a personal practice.
这是怎么回事?
编辑:好,我发现,周围用括号表达式$itr += $incr
固定明显的问题。尽管如此,为什么会非常酷的一个适当的解释。我提前感谢。
http://php.net/manual/en/language.operators.precedence.php –