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 évalue l'opérande de gauche si l'opérande de 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é à droite opérande.
Il est essentiel que l'expression de l'opérande de gauche ne soit évaluée qu'une seule fois, garantissant l'efficacité.
Exemples illustratifs
Pour clarifier davantage, considérons 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 s'attribue à 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 la 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 son 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.
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!