Maison > développement back-end > tutoriel php > Pourquoi la concaténation et l'ajout de PHP conduisent-ils à des résultats inattendus ?

Pourquoi la concaténation et l'ajout de PHP conduisent-ils à des résultats inattendus ?

Susan Sarandon
Libérer: 2024-10-31 10:50:29
original
440 Les gens l'ont consulté

Why Does PHP Concatenation and Addition Lead to Unexpected Results?

Dévoilement de l'ambiguïté de PHP : le cas curieux de la concaténation et de l'addition

La préséance et l'associativité des opérateurs de PHP peuvent conduire à des résultats inattendus lorsque l'addition et la concaténation les opérateurs sont impliqués. Considérez ce code :

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

echo "sum: " .  $a + $b; // Output: 2
echo "sum: " . ($a + $b); // Output: sum: 3</code>
Copier après la connexion

Pourquoi cet écart ? Tout dépend de l'ordre d'évaluation des opérateurs PHP.

Les opérateurs d'addition ( ) et de concaténation (.) ont la même priorité, mais ils sont associatifs à gauche. Cela signifie que lorsque PHP rencontre une expression impliquant plusieurs opérateurs avec la même priorité, il évalue d'abord l'opérateur le plus à gauche et se dirige vers la droite.

Dans la première instruction echo, l'opérateur de concaténation (.) évalue en premier , ce qui donne ce qui suit :

"sum: 1" + 2
Copier après la connexion

La chaîne "sum : 1" est ensuite convertie en une valeur numérique (0) et ajoutée à $b (2), donnant le résultat de 2.

Dans la deuxième instruction echo, les parenthèses forcent l'opérateur d'addition à évaluer en premier :

($a + $b) . "sum:"
Copier après la connexion

Le résultat est ensuite concaténé avec la chaîne "sum:", produisant le résultat souhaité de "sum: 3 ".

Ce comportement est documenté dans la documentation PHP sur la priorité des opérateurs. Il indique que "Les opérateurs ayant la même priorité évaluent de gauche à droite, c'est-à-dire d'abord, puis ., puis -."

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal