Maison  >  Article  >  développement back-end  >  Pourquoi l'opérateur ternaire et la concaténation de chaînes produisent-ils un comportement anormal ?

Pourquoi l'opérateur ternaire et la concaténation de chaînes produisent-ils un comportement anormal ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 03:40:30269parcourir

Why Does the Ternary Operator and String Concatenation Produce Anomalous Behavior?

Comportement anormal de l'opérateur ternaire et de la concaténation de chaînes

Énigme

Considérez l'extrait de code suivant :

<code class="php">$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';</code>

On pourrait anticiper que ce code attribuerait la chaîne « Papier : Bond » à $description si $paperType est « bond » et « Papier : Autre » sinon. Cependant, le comportement observé est différent.

Discerner la déviation

Lors de l'exécution, $description reçoit soit « Bond » soit « Other », en omettant la préface « Paper : ». Ce résultat inattendu provient du placement erroné des parenthèses.

Rectification de l'anomalie

Pour corriger le code, des parenthèses doivent être ajoutées pour garantir que la chaîne est concaténée dans le bon ordre :

<code class="php">$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');</code>

En mettant l'expression ternaire entre parenthèses, nous nous assurons que l'opération de concaténation est effectuée en premier, en attachant 'Papier :' au résultat concaténé de 'Bond' ou 'Autre'.

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