Heim Backend-Entwicklung PHP-Tutorial Wie sieht die Operatorpriorität in PHP aus?

Wie sieht die Operatorpriorität in PHP aus?

Jun 20, 2017 am 10:59 AM
php 优先级 运算符

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.

Die Operatorpriorität ist wie folgt

instanceof ^ td>Wird an vielen Stellen verwendet
运算符优先级
结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ - . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
Operatorpriorität

Kombinationsrichtung Operator Zusätzliche Informationen
Keine Klon neu Klon und neu
links [ array()
right ++ -- ~ ( int) ( float) (string) (array) (object) (bool) @ Typ und inkrementieren/dekrementieren
Keinetippen
rechts ! Logischer Operator
left * / %Arithmetische Operatoren
Links + – . arithmetischer Operator und String-Operator
links << >> Bitweiser Operator
Keine == != === !== <> Vergleichsoperator
Links & Bit-Operatoren und Referenzen
LinksBit Operator
links | Bitoperator
Links td> && Logischer Operator
Links || Logischer Operator td>
Links ? : Ternärer Operator
Rechts td> = += -= *= /= .= %= &= |= ^= <<= >>= = > Zuweisungsoperator

Links und Logischer Operator
Links xor td> Logischer Operator
Links oder Logischer Operator
Links ,
Paare mit derselben Priorität Für Operatoren 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 < 2 > eine unzulässige Anweisung, 1 <= 1 == 1 jedoch nicht. Weil die Priorität des T_IS_EQUAL
&lt;?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) -&gt; $a = 5, $b = 5

// mixing ++ and + produces undefined behavior
$a  =  1 ;
echo ++ $a  +  $a ++;  // may print 4 or 5
?&gt;
Nach dem Login kopieren
-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 ()), in In diesem Fall wird der Rückgabewert von foo() $a zugewiesen.

Das obige ist der detaillierte Inhalt vonWie sieht die Operatorpriorität in PHP aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles