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