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 |
| rechts | [ |
| rechts | ! ~ ++ -- (int) (float) (string) (array) (object) @ |
| links | * / % |
| links | + - . |
| links | << >> |
| keine Richtung | < <= > >= |
| keine Richtung | == != === !== |
| links | & |
| links | ^ |
| links | | |
| links | && |
| links | || |
| 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.