Apprivoiser l'opérateur Elvis (?:) en PHP
Le mystérieux opérateur ?: a honoré du code PHP, vous laissant perplexe. Cet article concis explore sa nature énigmatique et dévoile son véritable objectif.
Dévoilement de l'opérateur ?:
L'opérateur ?:, également connu sous le nom d'« opérateur Elvis », " fonctionne comme un opérateur ternaire. Cependant, sa caractéristique unique réside dans l’absence d’expression permettant d’évaluer si le prédicat s’avère vrai. Voici un aperçu de son comportement :
Il est évalué à l'opérande gauche si l'opérande gauche est véridique, c'est-à-dire non nul, chaîne vide, faux ou zéro.
Si le l'opérande de gauche est faux, il est évalué comme étant l'opérande de droite.
Essentiellement, l'expression de l'opérande de gauche n'est évaluée qu'une seule fois, garantissant l'efficacité.
Exemples illustratifs
Pour clarifier davantage, considérez l'extrait de code suivant :
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Dans ce cas, si $items est véridique (non nul ou non vide), la valeur de $items est assignée à elle-même. Cependant, si $items est faux, le résultat de $this->_handle->result('next', $this->_result, $this) est affecté à $items. Cela gère efficacement les valeurs non définies en fournissant une valeur par défaut.
Applications supplémentaires
L'opérateur ?: s'avère également utile dans les scénarios d'auto-vérification :
foo = foo ?: bar;
Ici, foo se verra attribuer la valeur de bar si foo est nul ou faux. Sinon, foo reste inchangé.
Vitrine de polyvalence
Pour illustrer sa polyvalence, considérons ces exemples :
var_dump(5 ?: 0); // 5 var_dump(false ?: 0); // 0 var_dump(null ?: 'foo'); // 'foo' var_dump(true ?: 123); // true var_dump('rock' ?: 'roll'); // 'rock' var_dump('' ?: 'roll'); // 'roll' var_dump('0' ?: 'roll'); // '0' var_dump('42' ?: 'roll'); // '42'
L'origine de « Elvis Operator »
Son surnom particulier, « Elvis Operator », vient de sa ressemblance avec les cheveux d'Elvis Presley. Tout comme les mèches d'Elvis étaient soit coiffées d'un pompadour touffu, soit lissées vers l'arrière, l'opérande gauche de l'opérateur est soit véridique, soit faux, déterminant la valeur résultante.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3