PHP unterstützt Prä- und Post-Inkrement- und Dekrementoperatoren im Stil der Programmiersprache C.
Zwei in der Programmierung häufig benötigte Operationen sind die Erhöhung bzw. Verminderung eines Zahlenwerts um 1.
Die Erhöhung um 1 bezeichnet man als Inkrement.
Die Verminderung um 1 bezeichnet man als Dekrement.
Für Inkrement und Dekrement gibt es in PHP zwei spezielle Operatoren:
++ (Inkrement)
-- (Dekrement)
Beide Operatoren weisen gegenüber den anderen arithmetischen Operatoren einige Besonderheiten auf:
Sie haben nur einen Operanden.
Sie können ihrem Operanden vor- oder nachgestellt werden (Präfix/Postfix).
Sie verändern den Wert ihres Operanden.
Sie sollten sich folgendes Beispiel betrachten. Angenommen, Sie wollen den Wert einer Variablen i um 1 vermindern. Ohne Dekrementoperator würden Sie dafür schreiben:
$i= $i – 1;
Mit dem Dekrementoperator geht es schneller:
$i--;
Statt der Postfixnotation – dabei wird der Operator seinem Operanden nachgestellt – können Sie auch die Präfixnotation verwenden, hier ist der Operator seinem Operanden vorangestellt.
--$i;
Sofern Sie den Dekrement- oder Inkrementoperator allein verwenden, ist es gleich, ob Sie die Postfix- oder Präfixnotation verwenden. Wenn Sie den Dekrement- oder Inkrementoperator in einem Ausdruck verwenden, müssen Sie jedoch klar zwischen Postfix- und Präfixnotation unterscheiden, denn beide führen zu unterschiedlichen Ergebnissen.
Hier wird der Wert der Variablen $zahl um 1 hochgesetzt und der neue Wert wird der Variablen $summe zugewiesen. Nach Ausführung der Anweisung sind $summe und $zahl gleich. Anders sieht es aus, wenn Sie den Operator nachstellen.
Hier wird ebenfalls der Wert der Variablen $zahl um 1 hochgesetzt, doch der Variablen $summe wird noch der alte Wert zugewiesen. Nach Ausführung der Anweisung hat $summe den Wert 20, während $zahl den Wert 21 hat. Ein weiteres Beispiel soll dies mithilfe einer if-Anweisung veranschaulichen.
Beispiel
if (++$gehalt >= 2000) {
...
}
Im Beispiel mit der Präfixnotation wird der Wert der Variablen $gehalt zuerst um 1 erhöht und anschließend mit der Zahl 2000 verglichen.
Beispiel
if ($gehalt++ >= 2000) {
...
}
Im Beispiel mit der Postfixnotation wird der Wert der Variablen $gehalt zuerst mit der Zahl 2000 verglichen und anschließend um 1 erhöht.