Opérateur Elvis (?:) Démêlé en PHP
Au plus profond d'une base de code PHP complexe, vous rencontrerez peut-être un mystérieux opérateur : le ? : opérateur. Surnommé « l'opérateur Elvis », vous vous demandez peut-être : « Quel est son but ? »
L'opérateur ?:, en substance, évalue son opérande de gauche si l'opérande de gauche est considéré comme « vrai », et le opérande correct sinon. En d'autres termes :
foo ?: bar
est à peu près équivalent à l'opérateur ternaire :
foo ? foo : bar
ou dans une instruction if-else traditionnelle :
if (foo) { foo = foo; } else { foo = bar; }
Cependant, contrairement à l'opérateur ternaire, l'opérateur ? : évalue l'opérande de gauche une seule fois, ce qui améliore l'efficacité.
Exemple Utilisation
Un cas d'utilisation courant concerne l'auto-vérification, comme le montre l'extrait de code :
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Ici, il attribue le résultat de $this->_handle- >result() à $items si $items est nul ou faux, tout en laissant $items inchangé sinon.
Exemples supplémentaires
Voici quelques exemples supplémentaires pour éclairer le comportement :
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'); // 'roll' var_dump('42' ?: 'roll'); // '42'
Devriez-vous rencontrer un opérateur ?: dans l'avenir, n'oubliez pas que son objectif est de fournir un moyen concis d'évaluer et d'attribuer en fonction de la véracité, rendant votre code plus efficace et plus lisible.
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!