Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Prioritätsreihenfolge der PHP-Operatoren
Als wir zuvor über PHP-Logikoperatoren gesprochen haben, haben wir die Priorität von PHP-Operatoren erwähnt. Die sogenannte Operatorpriorität bezieht sich darauf, welcher Operator im Ausdruck zuerst berechnet wird und welcher später berechnet wird Ausdruck 1 + 5 * 3
ist 16 statt 18, da das Multiplikationszeichen („*“) eine höhere Priorität hat als das Pluszeichen („+“). Bei Bedarf können Klammern verwendet werden, um eine Prioritätsänderung zu erzwingen. Beispiel: (1 + 5) * 3 hat den Wert 18.
Die von PHP-Operatoren in Operationen befolgten Regeln sind: Operationen mit höherer Priorität werden zuerst ausgeführt, und Operationen mit niedrigerer Priorität werden später ausgeführt. Wenn sie dieselbe Priorität haben, werden sie in der Reihenfolge von links nach rechts ausgeführt Beispielsweise ist „-“ linksverknüpft, dann ist 1 – 2 – 3 äquivalent zu (1 –
2) – 3 und das Ergebnis ist –4 rechtsverknüpft, also ist $a = $b = $c äquivalent zu $a = ($b = $c).
Die Operatoren in den Klammern werden zuerst ausgeführt. Die Verwendung von Klammern, auch wenn dies nicht erforderlich ist, gibt die Reihenfolge der Operationen durch die Paarung von Klammern klar an, anstatt sich auf die Operatorpriorität und Assoziativität zu verlassen . Um zu entscheiden, kann es die Lesbarkeit des Codes verbessern. Die Tabelle
listet die Operatoren in der Reihenfolge ihrer Priorität von hoch nach niedrig auf. Operatoren in derselben Zeile haben dieselbe Priorität und die Richtung, in der sie kombiniert werden, bestimmt die Reihenfolge der Auswertung.
结合方向 | 运算符 | 附加信息 |
---|---|---|
无 | clone new | clone和new |
左 | [ | array() |
右 | ** | 算术运算符 |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符和字符串运算符 |
左 | >> | 位运算符 |
无 | > >= | 比较运算符 |
无 | == != === !== | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ?? | 比较运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= **= /= .= %= &= |= ^= >>= | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
Es ist unrealistisch und unnötig, sich so viele Prioritätsstufen klar zu merken. Wenn der Ausdruck, den Sie schreiben, sehr komplex ist und viele Operationssymbole enthält, verwenden Sie keine Klammern Folgendes :
<?php $a and (($b !=$c) or (5*(50-$d))); ?>
Dies kann die Möglichkeit logischer Fehler verringern.
wird manchmal verwendet. Klammern können die Lesbarkeit Ihres Codes verbessern. Zum Beispiel das Folgende:
<?php $a = 3 * 3 % 5; // (3 * 3) % 5 = 4 //三元运行的结合 $a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2 $a = 1; $b = 2; $a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5 ?>
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Prioritätsreihenfolge der PHP-Operatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!