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

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

Linda Hamilton
リリース: 2024-11-13 16:13:02
オリジナル
409 人が閲覧しました

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

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

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

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

1

foo ?: bar

ログイン後にコピー

は、三項演算子

1

foo ? foo : bar

ログイン後にコピー

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

1

2

3

4

5

if (foo) {

    foo = foo;

} else {

    foo = bar;

}

ログイン後にコピー

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

使用例

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

1

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

ログイン後にコピー

ここでは、 $items が null または falsey の場合は、$this->_handle->result() の結果を $items に割り当てます。それ以外の場合は $items を変更しないままにしておきます。

追加の例

動作を説明するために、さらにいくつかの例を示します。

1

2

3

4

5

6

7

8

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート