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
Linda Hamiltonoriginal
2024-11-13 16:13:02438parcourir

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

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!

Déclaration:
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