Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-24 02:19:02
original
1057 Les gens l'ont consulté

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';
Copier après la connexion

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');
Copier après la connexion

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!

source:php
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