Maison  >  Article  >  développement back-end  >  Puzzle d'opérateur ternaire : pourquoi la concaténation de chaînes ne fonctionne-t-elle pas comme prévu ?

Puzzle d'opérateur ternaire : pourquoi la concaténation de chaînes ne fonctionne-t-elle pas comme prévu ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 02:19:02983parcourir

Ternary Operator Puzzle: Why Isn't String Concatenation Working as Expected?

Enquête sur l'opérateur ternaire : énigme de la concaténation

Dans ce dilemme de programmation, un codeur curieux rencontre un résultat inattendu lors de l'utilisation de l'opérateur ternaire et de la concaténation de chaînes . Le code original se lit comme suit :

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';

L'intention était que la variable $description contienne la chaîne "Paper : Bond" si $paperType est égal à "bond", ou "Paper : Other" dans le cas contraire. Cependant, le résultat obtenu était simplement « Lien » ou « Autre ».

La clé pour résoudre ce problème réside dans l'ordre des opérations dans l'expression ternaire. Bien que l'opérateur ternaire soit un raccourci pratique pour les affectations conditionnelles, il fonctionne à un niveau de priorité différent de celui de la concaténation de chaînes. De ce fait, l'opération de concaténation se produit effectivement avant l'évaluation de l'expression ternaire.

Pour remédier à cela, le code doit être modifié pour garantir que la concaténation soit effectuée après l'évaluation de l'expression ternaire. Le code corrigé :

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');

En mettant l'expression ternaire entre parenthèses, le code garantit que la concaténation de chaînes est effectuée sur le résultat de l'expression ternaire, produisant le résultat attendu soit "Paper: Bond" soit "Papier : Autre" basé sur la valeur de $paperType.

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