Ainsi, Jacob Relkin a tout à fait raison de dire que le "shorthand" que vous mentionnez s'appelle effectivement l'opérateur "ternaire", et comme l'ajoute Sam Dufel, il est très répandu dans d'autres langues. En fonction de la manière dont le langage l'implémente, il se peut même que le serveur interprète plus rapidement la logique, et que vous puissiez la lire plus rapidement.
Parfois, lorsque vous apprenez un nouvel élément de logique ou de nouveaux opérateurs comme celui-ci, il est utile de penser à l'anglais (ou à votre langue maternelle) pour l'adapter. Décrivez-le en une phrase. Parlons de votre exemple :
($var) ? true : false;
Voici ce qu'il faut lire :
Est-ce que $var est vrai ? Si $var est, retourner la valeur true . Si $var est faux, retourner la valeur false .
Le point d'interrogation vous rappelle que vous posez une question qui détermine le résultat.
Un cas plus courant d'utilisation de l'opérateur ternaire est celui où vous vérifiez quelque chose qui n'est pas nécessairement un booléen, mais que vous pouvez utiliser la logique booléenne pour le décrire. Prenons par exemple l'objet Car
qui a une propriété appelée color
qui est une variable de type chaîne de caractères (en PHP). Vous ne pouvez pas demander si une chaîne est vraie ou fausse, car cela n'a aucun sens, mais vous pouvez poser différentes questions à son sujet :
$output = $car->color == "blue" ? "Wheee this car is blue!" : "This car isn't blue at all.";
echo $output;
Cette ligne se lit donc comme suit :
La couleur de la voiture est-elle la même que celle de la chaîne "bleu" ?
Si c'est le cas, retourne la chaîne "Whee this car is blue !" sinon retourne la chaîne "Cette voiture n'est pas bleue du tout".
Ce que l'opérateur ternaire renvoie est utilisé dans le côté droit d'une instruction d'affectation avec $output, et cette chaîne est ensuite imprimée.
0 votes
Qu'entendez-vous par "sténographie" ?
2 votes
Ce n'est pas Perl, il n'y a pas beaucoup de "shorthand" en PHP. Des moyens plus courts et plus concis de faire certaines choses ? C'est possible. Des raccourcis ? Pas vraiment. Votre code deviendra plus court en apprenant ce que font toutes les différentes fonctions et en trouvant celle qui fait ce que vous voulez, ou en combinant quelques-unes d'entre elles pour obtenir l'effet désiré.
1 votes
Maintenant en PHP 5.4 :
print $var ?: 'foo'
si vous voulez simplement vérifier si la valeur est véridique ou utiliser une chaîne par défaut de "foo".