Heim  >  Artikel  >  Backend-Entwicklung  >  Rangfolge der PHP-Operatoren

Rangfolge der PHP-Operatoren

怪我咯
怪我咯Original
2018-05-24 16:38:5210532Durchsuche

Operatorpriorität gibt an, wie „eng“ zwei Ausdrücke gebunden sind. Beispielsweise ergibt der Ausdruck 1 + 5 * 3 16 statt 18, da das Multiplikationszeichen („*“) eine höhere Priorität hat als das Pluszeichen („+“). Durch Klammern kann bei Bedarf eine Änderung der Priorität erzwungen werden. Beispiel: (1 + 5) * 3 hat den Wert 18.

Wenn Operatoren die gleiche Priorität haben, bestimmt ihre assoziative Richtung, ob die Auswertung von rechts nach links oder von links nach rechts erfolgen soll – siehe Beispiel unten.

In der folgenden Tabelle sind die Operatoren in der Reihenfolge ihrer Priorität von hoch nach niedrig aufgeführt. Operatoren in derselben Zeile haben dieselbe Priorität und die Richtung, in der sie kombiniert werden, bestimmt die Reihenfolge der Auswertung.

tr > Links tr>logischer OperatorLogischer Operator
Kombinierte Richtung Operator Zusätzliche Informationen
Keine Neues Klonen Klonen und Neues
Links [ array()
Rechts ++ – ~ (int) (float) (string) (array) (object) (bool) @ Typ und inkrementieren/dekrementieren
Keine Instanz vom Typ
richtig ! td > Logischer Operator
结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ — ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
10e3fdaca48eb0367c6d60dbc98f885d> 位运算符
== != === !== a8093152e673feb7aba1828c43532094 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
* / % Arithmetischer Operator

Links + – . Arithmetischer Operator und String-Operator
left d1d31c49bb2172f24b90c17dc6589b8e Bitweise Operatoren
Keine == != === !== a8093152e673feb7aba1828c43532094 Vergleich Operatoren
Left & Bitweise Operatoren und Referenzen
Left ^ Bitweiser Operator
Links | /td>
Links && Logische Operatoren
Links || Logischer Operator
Links : Ternärer Operator
Rechts = += -= *= /= .= %= &= | = ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => ; Zuweisungsoperator
links und logischer Operator
links xor
links oder
left , wird an vielen Stellen verwendet, um
Für Operatoren mit derselben Priorität bedeutet die linke assoziative Richtung, dass die Auswertung von links nach rechts erfolgt, und die rechte assoziative Richtung bedeutet umgekehrt. Es ist möglich, dass ein Operator mit gleicher Priorität ohne assoziative Richtung nicht mit sich selbst kombiniert werden kann. Beispielsweise ist in PHP 1 d66d2a93259ca9392db29f00ed43fda0 eine unzulässige Anweisung, 1 <= 1 == 1 jedoch nicht. Weil die Priorität des T_IS_EQUAL

-Operators

niedriger ist als die des T_IS_SMALLER_OR_EQUAL-Operators.
<?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 
// mixing ++ and + produces undefined behavior 
$a = 1; 
echo ++$a + $a++; // may print 4 or 5 
?>

Beispiel In Kombination mit der Richtung sieht der Code wie folgt aus

PS: Die Verwendung von Klammern, auch wenn sie nicht unbedingt erforderlich sind, kann normalerweise die Lesbarkeit des Codes verbessern. Obwohl = eine niedrigere Priorität als die meisten anderen Operatoren hat, erlaubt PHP dennoch Ausdrücke wie die folgenden: if (!$a = foo()), in diesem Fall wird der Rückgabewert von foo() $ zugewiesen A.

Das obige ist der detaillierte Inhalt vonRangfolge der PHP-Operatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn