Warum führen PHP-Verkettung und -Addition zu unerwarteten Ergebnissen?

Susan Sarandon
Freigeben: 2024-10-31 10:50:29
Original
394 Leute haben es durchsucht

Why Does PHP Concatenation and Addition Lead to Unexpected Results?

Enthüllung der Mehrdeutigkeit von PHP: Der seltsame Fall von Verkettung und Addition

PHPs Operatorpriorität und Assoziativität können bei Addition und Verkettung zu unerwarteten Ergebnissen führen Betreiber sind beteiligt. Betrachten Sie diesen Code:

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

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

Warum die Diskrepanz? Es kommt alles auf die Operator-Auswertungsreihenfolge von PHP an.

Sowohl der Additionsoperator ( ) als auch der Verkettungsoperator (.) haben die gleiche Priorität, sind jedoch linksassoziativ. Das bedeutet, dass PHP, wenn es auf einen Ausdruck trifft, der mehrere Operatoren mit derselben Priorität beinhaltet, zuerst den ganz linken Operator auswertet und sich nach rechts vorarbeitet.

In der ersten Echo-Anweisung wird der Verkettungsoperator (.) zuerst ausgewertet , was zu Folgendem führt:

"sum: 1" + 2
Nach dem Login kopieren

Die Zeichenfolge „sum: 1“ wird dann in einen numerischen Wert (0) umgewandelt und zu $b (2) addiert, was die Ausgabe 2 ergibt.

In der zweiten Echo-Anweisung zwingen die Klammern den Additionsoperator, zuerst Folgendes auszuwerten:

($a + $b) . "sum:"
Nach dem Login kopieren

Das Ergebnis wird dann mit der Zeichenfolge „sum:“ verkettet, was die gewünschte Ausgabe von „sum: 3“ ergibt ".

Dieses Verhalten ist in der PHP-Dokumentation zur Operatorpriorität dokumentiert. Darin heißt es: „Operatoren mit derselben Priorität werten von links nach rechts aus, d. h. zuerst, dann ., dann –.“

Das obige ist der detaillierte Inhalt vonWarum führen PHP-Verkettung und -Addition zu unerwarteten Ergebnissen?. 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!