What is the Elvis operator in PHP and how does it work?

Linda Hamilton
Release: 2024-11-24 05:39:18
Original
548 people have browsed it

What is the Elvis operator in PHP and how does it work?

Taming the Elvis Operator (?:) in PHP

The mysterious ?: operator has graced some PHP code, leaving you puzzled. This concise article delves into its enigmatic nature, unraveling its true purpose.

Unveiling the ?: Operator

The ?: operator, also known as the "Elvis operator," functions akin to a ternary operator. However, its unique characteristic lies in the absence of an expression to evaluate to if the predicate proves true. Here's a breakdown of its behavior:

It evaluates to the left operand if the left operand is truthy, i.e., not null, empty string, false, or zero.
If the left operand is falsy, it evaluates to the right operand.
Crucially, the expression for the left operand is evaluated only once, ensuring efficiency.

Illustrative Examples

To further clarify, consider the following code snippet:

$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Copy after login

In this instance, if $items is truthy (non-null or non-empty), the value of $items is assigned to itself. However, if $items is falsy, the result of $this->_handle->result('next', $this->_result, $this) is assigned to $items. This effectively handles undefined values by providing a default value.

Additional Applications

The ?: operator also proves useful in self-checking scenarios:

foo = foo ?: bar;
Copy after login

Here, foo will be assigned the value of bar if foo is null or falsy. Otherwise, foo remains unchanged.

Showcase of Versatility

To illustrate its versatility, consider these examples:

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'
Copy after login

The Origin of "Elvis Operator"

Its peculiar moniker, "Elvis operator," stems from its resemblance to Elvis Presley's hair. Just as Elvis's locks were either styled in a bushy pompadour or slicked back, the operator's left operand is either truthy or falsy, determining the resulting value.

The above is the detailed content of What is the Elvis operator in PHP and how does it work?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template