Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Priorität haben Operatoren in PHP?

Welche Priorität haben Operatoren in PHP?

青灯夜游
青灯夜游Original
2019-10-16 13:41:035661Durchsuche

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 („+“). Bei Bedarf können Klammern verwendet werden, um eine Prioritätsänderung zu erzwingen. Beispiel: (1 + 5) * 3 hat den Wert 18.

Welche Priorität haben Operatoren in PHP?

Die Operatorpriorität bestimmt die Reihenfolge der Operationen. Diejenige mit der höheren Operationsebene wird zuerst berechnet. Wenn die Prioritäten gleich sind, bestimmt die Kombinationsrichtung der Operatoren, wie zu betreiben. Prioritätsänderungen können durch die Verwendung von Klammern erzwungen werden.

Die Reihenfolge der Operatorpriorität von hoch nach niedrig ist wie folgt:

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ — ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
10e3fdaca48eb0367c6d60dbc98f885d> 位运算符
== != === !== a8093152e673feb7aba1828c43532094 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到

Für Operatoren mit derselben Priorität bedeutet die linke assoziative Richtung, dass die Auswertung von links nach rechts erfolgt. rechtsassoziativ Die Richtung ist entgegengesetzt. Es ist möglich, dass ein Operator mit gleicher Priorität ohne assoziative Richtung nicht mit sich selbst kombiniert werden kann.

Beispiel: Bindungsanweisungen

<?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 
?>

Hinweis: Die Verwendung von Klammern, auch wenn sie nicht unbedingt erforderlich sind, verbessert oft die Lesbarkeit Ihres Codes.

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 foo() Der Rückgabewert wird $ zugewiesen A.

Das obige ist der detaillierte Inhalt vonWelche Priorität haben Operatoren in PHP?. 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