Warum bedeutet \'sum: \' ? $a $b Ausgabe 2 in PHP?

Patricia Arquette
Freigeben: 2024-10-30 01:58:02
Original
402 Leute haben es durchsucht

Why Does

Konfliktierende PHP-Operatoren: Addition und Verkettung

In PHP tritt ein faszinierendes Phänomen auf, wenn versucht wird, Additions- und Verkettungsoperationen zu kombinieren. Lassen Sie uns dieses merkwürdige Verhalten anhand eines Beispiels untersuchen:

<code class="php">$a = 1;
$b = 2;

echo "sum: " . $a + $b;
echo "sum: " . ($a + $b);</code>
Nach dem Login kopieren

Erwartungsgemäß wird in der zweiten Zeile „Summe: 3“ ausgegeben. In der ersten Zeile wird jedoch unerwartet „2“ anstelle von „Summe: 2“ angezeigt. Warum passiert das?

Linksassoziative Operatoren mit gleicher Priorität

Der Schlüssel liegt in der Operatorpriorität und Assoziativität in PHP. Sowohl Additions- ( ) als auch Verkettungsoperatoren (.) haben dieselbe Priorität. Folglich werden sie von links nach rechts ausgewertet.

In der ersten Zeile unseres Codes steht der Verkettungsoperator (.) an erster Stelle:

<code class="php">"sum: " . $a + $b</code>
Nach dem Login kopieren

Dieses Ergebnis wird dann zu $b addiert . Wir haben also Folgendes:

<code class="php">echo "sum: 1" + 2;</code>
Nach dem Login kopieren

Da es sich um einen numerischen Kontext handelt, wird „Summe: 1“ in eine Ganzzahl umgewandelt. Damit haben wir 0 2, was 2 ergibt.

Wenn in der zweiten Zeile Klammern eingeführt werden, hat der Additionsoperator Vorrang. Zuerst wird der Ausdruck in Klammern ausgewertet, was zu 3 führt, die dann mit „sum:“ verkettet wird, um die korrekte Ausgabe zu erzeugen: „sum: 3“.

Dokumentation der Operator-Macken von PHP

Dieses eigenartige Verhalten wird in der PHP-Dokumentation für Verkettungs- und arithmetische Operatoren ausdrücklich erwähnt, wobei die Bedeutung der Assoziativität beim Umgang mit Operatoren derselben Priorität hervorgehoben wird. Für PHP-Entwickler ist es wichtig, sich dieser Nuancen bewusst zu sein, um mögliche Verwirrung in ihrem Code zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum bedeutet \'sum: \' ? $a $b Ausgabe 2 in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
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!