据我所知,预增量是在所有其他操作之前计算的,后增量是在所有操作之后计算的。
在 php 文档中,据说增量(据我所知是预增量)具有非常高的优先级。后增量应该具有非常低的优先级,实际上是最低的优先级。
+
运算符优先级++
比一个低得多(根据文档)。
所以,现在的问题是:在 php 文档中有一个例子,它表明一个表达式中的前增量和后增量可以变化:
// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
为什么?怎么回事?我看到以下情况,非常清楚:
- 预增量 $a
- 计算 $a 和 $a 的总和
- 后增量 $a
我不明白为什么它是不可预测的。可以在此处找到有关此主题(以及此示例)的 PHP 文档: http ://www.php.net/manual/en/language.operators.precedence.php