2017-12-31 14 views
1

の説明を私はPHP 7.2.0ネストしているヌル集合演算子(??)はどのようにPHPで動作しますか?ステップ・バイ・ステップが必要実行フロー

を使用しています私は(??)null合体演算子の通常の基本的な使い方を理解してきましたが、私はできませんよヌル統合オペレータ(??)がネストされている場合の実行フローと機能を理解してください。

以下のコード例を参考にして、実行フローを段階的に説明してください。

<?php 

$foo = null; 
$bar = null; 
$baz = 1; 
$qux = 2; 

echo $foo ?? $bar ?? $baz ?? $qux; // outputs 1 

?> 
+1

空でない最初のエントリはエコーされます。 $ fooと$ barは両方とも空ですが、$ bazは空ではありません –

答えて

4

ヌル合体オペレータの単一ステップの周りに括弧を追加すると、あなたの例がよりクリーンになると思います。

echo ($foo ?? ($bar ?? ($baz ?? $qux))); 

基本的には左から右へ実行するのと同じです。

ヌル合体演算子は右結合です。つまり、操作は右から左にグループ化されます。つまり、式a ?? b ?? cは、a ?? (b ?? c)と評価されます。

1

基本的な使い方と同じように動作します。

次のように実行フローは次のようになります。

  1. それはisset($foo)それはそれは、それが設定されていないisset($bar)をチェック$bar
  2. のために行く、それはとてもNULLが含まれ、設定されていない、それはあまりにもそうNULLが含まれていますチェック、のために行く$baz
  3. それは、1の値を含んでいるので、isset($baz)が設定されていることをチェックするので、印刷され、実行が停止します。