Die Operator-Rangfolge legt fest, wie "eng" ein Operator zwei Ausdrücke miteinander verbindet. Zum Beispiel ist das Ergebnis des Ausdruckes 1 + 5 * 3 16 und nicht 18, da der Multiplikations-Operator ("*") in der Rangfolge höher steht als der Additions-Operator ("+"). Wenn nötig, können Sie Klammern setzen, um die Rangfolge der Operatoren zu beeinflussen. Zum Beispiel ergibt: (1 + 5) * 3 18. Ist die Rangfolge der Operatoren gleich, wird links nach rechts Assoziativität benutzt.
Die folgende Tabelle zeigt die Rangfolge der Operatoren, oben steht der Operator mit dem höchsten Rang.
Assoziativität | Operator |
---|---|
keine Richtung | new |
links | [ |
rechts | ** |
rechts | ~ ++ -- (int) (float) (string) (array) (object) @ |
keine Richtung | instanceof |
rechts | ! |
links | * / % |
links | + - . |
links | << >> |
keine Richtung | < <= > >= |
keine Richtung | == != === !== <> <=> |
links | & |
links | ^ |
links | | |
links | && |
links | || |
rechts | ?? |
links | ? : |
rechts | = += -= *= /= .= %= &= |= ^= <<= >>= |
rechts | |
links | and |
links | xor |
links | or |
links | , |
Hinweis:
Obwohl ! einen höheren Rang gegenüber = hat, erlaubt es Ihnen PHP immer noch ähnliche Ausdrücke wie den folgenden zu schreiben: if (!$a =foo()).In diesem Ausdruck wird die Ausgabe von foo() der Variablen $a zugewiesen.