SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=121&group=24
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Inkrement- bzw. Dekrementoperatoren


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.

Für Inkrement und Dekrement gibt es in PHP zwei spezielle Operatoren:

Beide Operatoren weisen gegenüber den anderen arithmetischen Operatoren einige Besonderheiten auf:

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.

Beispiel

$summe = 0;
$zahl = 20;
$summe = ++$zahl; // Ergebnis: $summe und $zahl gleich 21

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.

Beispiel

$summe = 0;
$zahl = 20;
$summe = $zahl++; // Ergebnis: $summe 20 und $zahl 21

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.

OperatorBezeichnungBedeutung
++Präinkrement++$a ergibt $a+1 und erhöht $a um 1.
++Postinkrement$a++ ergibt $a und erhöht $a um 1.
--Prädekrement--$a ergibt $a–1 und verringert $a um 1.
--Postdekrement$a-- ergibt $a und verringert $a um 1.