首頁 > 後端開發 > php教程 > 什麼是 Elvis 運算子 (?:) 以及它在 PHP 中如何運作?

什麼是 Elvis 運算子 (?:) 以及它在 PHP 中如何運作?

Linda Hamilton
發布: 2024-11-13 16:13:02
原創
405 人瀏覽過

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

PHP 中的Elvis 運算子(?:)

在複雜的PHP 程式碼庫深處,你可能會遇到一個神秘的運算子: ? : 操作員。被稱為“Elvis 運算符”的它可能會讓您想知道“它的目的是什麼?”

本質上,如果左操作數被認為是“真實的”,則?: 運算符將計算其左操作數,否則右操作數。換句話說:

foo ?: bar
登入後複製

大致相當於三元運算子:

foo ? foo : bar
登入後複製

或傳統的if-else 語句:

if (foo) {
    foo = foo;
} else {
    foo = bar;
}
登入後複製

但是,與三元運算子不同,?:運算子只計算左操作數一次,從而增強

用法範例

一個常見的用例是用於自我檢查,如程式碼片段所示:

$items = $items ?: $this->_handle->result('next', $this->_result, $this);
登入後複製

這裡,如果$items 為null 或falsey,它將$this->_handle->result() 的結果分配給$items,同時保持 $items 不變,否則。

其他範例

這裡還有一些例子來說明該行為:

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'
登入後複製

如果您遇到將來的?: 運算符,請記住,它的目標是提供一種簡潔的方法來基於真實性進行評估和分配,使您的程式碼更有效率和可讀。

以上是什麼是 Elvis 運算子 (?:) 以及它在 PHP 中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板