Maison  >  Article  >  développement back-end  >  Pourquoi la concaténation semble-t-elle avoir la priorité sur l'addition en PHP ?

Pourquoi la concaténation semble-t-elle avoir la priorité sur l'addition en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 02:28:29340parcourir

Why Does Concatenation Seem to Take Precedence Over Addition in PHP?

Confusion de priorité des opérateurs PHP avec addition et concaténation

Lorsque vous traitez avec différents opérateurs en PHP, comprendre leur priorité devient crucial. La priorité détermine l'ordre dans lequel les opérations sont effectuées, ce qui peut conduire à des résultats inattendus.

Dans l'exemple donné :

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

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

Le problème se pose car l'ajout ( ) et la concaténation ( .) les opérateurs partagent la même priorité. Cependant, comme ils sont associatifs à gauche, ils sont évalués de gauche à droite.

Dans la première instruction echo, le code est évalué comme :

<code class="php">echo (("sum:" . $a) + $b);</code>

Cela signifie que la concaténation "somme :" et $a sont d'abord évalués, ce qui donne "somme : 1". Ceci est ensuite ajouté à $b, donnant le résultat de 2.

D'autre part, dans la deuxième instruction echo, des parenthèses sont utilisées :

<code class="php">echo ("sum: " . ($a + $b));</code>

Les parenthèses forcent l'ajout de $a et $b doivent être évalués en premier, donnant le résultat de 3. Ceci est ensuite concaténé avec "sum:", ce qui donne le résultat attendu de "sum: 3".

Ce comportement peut prêter à confusion, surtout lorsqu'il s'agit de plusieurs opérateurs avec la même priorité. Cependant, en comprenant la priorité et l'associativité des opérateurs, les développeurs peuvent éviter de tels résultats inattendus.

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!

Déclaration:
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