ホームページ  >  記事  >  バックエンド開発  >  Elvis 演算子 (?:) とは何ですか?また、PHP でどのように機能しますか?

Elvis 演算子 (?:) とは何ですか?また、PHP でどのように機能しますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-13 16:13:02347ブラウズ

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

PHP で紐解くエルヴィス演算子 (?:)

複雑な PHP コードベースの奥深くでは、謎の演算子に遭遇するかもしれません。 ?: 演算子。 「エルヴィス演算子」と呼ばれるこの演算子は、「その目的は何ですか?」と疑問に思われるかもしれません。

?: 演算子は、本質的に、左のオペランドが「真実」であるとみなされる場合にその左のオペランドを評価します。それ以外の場合は右オペランド。言い換えると、

foo ?: bar

は、三項演算子

foo ? foo : bar

、または従来の if-else ステートメントの

if (foo) {
    foo = foo;
} else {
    foo = bar;
}

とほぼ同等です。ただし、三項演算子とは異なり、?: 演算子は左のオペランドを 1 回だけ評価するため、

使用例

コード スニペットに示すように、一般的な使用例の 1 つは自己チェックです。

$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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。