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

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

Linda Hamilton
リリース: 2024-11-24 05:39:18
オリジナル
608 人が閲覧しました

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

PHP で Elvis 演算子 (?:) を飼いならす

謎めいた ?: 演算子が PHP コードの一部を装飾しており、あなたは困惑しています。この簡潔な記事では、その謎めいた性質を掘り下げ、その真の目的を解明します。

?: 演算子の公開

「エルビス演算子」とも呼ばれる ?: 演算子" は三項演算子に似た機能を持ちます。ただし、その独特の特徴は、述語が真であると証明された場合に評価する式が存在しないことです。その動作の内訳は次のとおりです。

左オペランドが真実である場合、つまり、null、空の文字列、false、ゼロ以外の場合、左オペランド として評価されます。
If the左のオペランドは falsy です。右に評価されますoperand.
重要なことに、左側のオペランドの式は 1 回だけ評価され、効率が保証されます。

説明例

さらに明確にするために、次のコード スニペット:

$items = $items ?: $this->_handle->result('next', $this->_result, $this);
ログイン後にコピー

この例では、$items が真実である場合(null または空ではない)、$items の値はそれ自体に割り当てられます。ただし、$items が false の場合、$this->_handle->result('next', $this->_result, $this) の結果が $items に代入されます。これは、デフォルト値を提供することで未定義の値を効果的に処理します。

追加のアプリケーション

?: 演算子は、次のような自己チェック シナリオでも役立ちます。

foo = foo ?: bar;
ログイン後にコピー

ここで、foo が null または false の場合、foo には bar の値が割り当てられます。それ以外の場合、foo は変更されません。

多用途性のショーケース

その多用途性を説明するために、次の例を考えてみましょう。

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'
ログイン後にコピー

起源「エルヴィス・オペレーター」の

です「エルヴィス・オペレーター」という独特のあだ名は、エルヴィス・プレスリーの髪に似ていることに由来しています。エルビスのロックがふさふさしたポンパドールのスタイルか、後ろに滑らかにスタイルされていたのと同じように、演算子の左オペランドは真か偽のいずれかで、結果の値が決まります。

以上がPHP の Elvis 演算子とは何ですか?また、それはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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