Maison > développement back-end > tutoriel php > Qu'est-ce que l'opérateur Elvis (?:) et comment ça marche en PHP ?

Qu'est-ce que l'opérateur Elvis (?:) et comment ça marche en PHP ?

Linda Hamilton
Libérer: 2024-11-13 16:13:02
original
405 Les gens l'ont consulté

What is the Elvis Operator (?:) and How Does it Work in PHP?

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
Copier après la connexion

est à peu près équivalent à l'opérateur ternaire :

foo ? foo : bar
Copier après la connexion

ou dans une instruction if-else traditionnelle :

if (foo) {
    foo = foo;
} else {
    foo = bar;
}
Copier après la connexion

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);
Copier après la connexion

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'
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal