Comportement étrange de l'opérateur ternaire et de la concaténation de chaînes ?
Bonjour, je me demande simplement pourquoi ce code produit (du moins pour moi) des résultats incorrects.
D'accord, c'est peut-être de ma faute
$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';
Je suppose que si paperType est égal à « Bond », la description est « Paper : Bond », si paperType n'est pas égal à « Bond », la description est « Paper : Other ».
Mais lorsque j'exécute ce code, le résultat est que la description est "Bond" ou "Autre" et me laisse Vous vous demandez où est passée la chaîne « Papier : » ? ? ?
2 réponse
Lié à la priorité des opérateurs. Vous devez faire ce qui suit :
$description = 'Paper: ' . (($paperType == 'bond') ? 'Bond' : 'Other');
$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');
Essayez d'ajouter des parenthèses afin de pouvoir concaténer une chaîne à une autre chaîne dans le bon ordre.
Outils chauds Tags
Hot Questions
Hot Tools
Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)
Téléchargez la collection de bibliothèques d'exécution requises pour l'installation de phpStudy
VC9 32 bits
Bibliothèque d'exécution de l'environnement d'installation intégré VC9 32 bits phpstudy
Version complète de la boîte à outils du programmeur PHP
Programmer Toolbox v1.0 Environnement intégré PHP
VC11 32 bits
Bibliothèque d'exécution de l'environnement d'installation intégré VC11 phpstudy 32 bits
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Sujets chauds





