Vorrang von PHP-Operatoren "Undefinierte Reihenfolge der Auswertung"?
http://www.php.net/manual/en/language.operators.precedence.php#example-115
<?php
$a = 1;
echo $a + $a++; // may print either 2 or 3
?>
Das Beispiel aus dem PHP-Handbuch erklärt nicht sehr gut. Warum nicht?$a++
bewertet zu2
und dann hinzugefügt1
, so dass es immer wirdecho 1 + 2 // equals 3
? Ich verstehe nicht, wie es "entweder 2 oder 3 drucken kann". Ich dachte inkrementell++
hat "höhere Priorität" als Addition+
?
Mit anderen Worten, ich verstehe nicht, warum es nicht ...
$a = 1;
1) echo $a + $a++;
2) echo 1 + ($a = 1 + 1);
3) echo 1 + (2);
4) echo 3;