Vorrang des PHP-Operators

伊谢尔伦
Freigeben: 2016-11-24 13:39:30
Original
1232 Leute haben es durchsucht

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.

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 die gleiche Priorität und die Richtung, in der sie kombiniert werden, bestimmt die Reihenfolge der Auswertung.

Vorrang des Operators

Kombinationsrichtung                                                                                >Keine, neuer Klon und neuer links [ array()

rechts ++ -- ~ (int) (float) (string) (array) (object) (bool) @ Typen und erhöhen/verringern

Keine Instanz des Typs

Richtig! Logischer Operator

Links* / % arithmetischer Operator

Links+ - Arithmetische Operationen und Stringoperatoren

links <<> != === !== <> Vergleichsoperatoren

Linke & Bitweise Operatoren und Referenzen

Linke ^ Bitweise Operatoren

Linke | 🎜>Links && Logische Operatoren

Links ||. Logischer Operator

Links : Ternärer Operator

Rechts = += -= *= /= .= %= &= |= ^= <<= >>= => Zuweisungsoperator

links und und logischer Operator

links xor logischer Operator

links oder logischer Operator

Links ,

werden an vielen Stellen verwendet. Bei Operatoren mit derselben Priorität bedeutet die linke assoziative Richtung, dass die Auswertung von links nach rechts erfolgt, und die rechte assoziative Richtung bedeutet das Gegenteil . 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 < 2 > 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.

Beispiel Nr. 1: Richtungen kombinieren

Die Verwendung von Klammern kann oft die Lesbarkeit Ihres Codes verbessern, auch wenn sie nicht unbedingt erforderlich sind.

Hinweis:

Obwohl = eine niedrigere Priorität als die meisten anderen Operatoren hat, erlaubt PHP dennoch Ausdrücke wie die folgenden: if (!$a = foo()), hier Im Beispiel die Rückgabe Der Wert von foo() wird $a zugewiesen.

Beispiel:

<?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
?>
Nach dem Login kopieren

Führen Sie den folgenden Befehl in der Befehlszeile aus, und das gedruckte Ergebnis ist falsch:

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!