Heim  >  Artikel  >  Backend-Entwicklung  >  Warum bedeutet \"sum: \" ? $a $b Ausgabe 2 in PHP?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 01:58:02403Durchsuche

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>

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>

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

<code class="php">echo "sum: 1" + 2;</code>

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!

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