」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 什麼是 Elvis 運算子 (?:) 以及它在 PHP 中如何運作?

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

發佈於2024-11-21
瀏覽:733

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

Elvis 運算子(?:) PHP 揭秘

在複雜的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);

這裡,它將$this->_handle->result() 的結果賦給 $items if $items 為 null 或 false,否則 $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'

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

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3