Maison > Article > développement back-end > Pourquoi la concaténation semble-t-elle avoir la priorité sur l'addition en 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!