中級 › ?? を使わずに存在しないキーへアクセスするとWarningが混ざる › パターン1
?? を使わずに存在しないキーへアクセスするとWarningが混ざる
配列のキーが存在するか分からない場合、??演算子を使えばWarningを出さずにデフォルト値を指定できます。
1 <?php 2 $config = ["timeout" => 30]; 3 $retries = $config["retries"] ___ 3; ^ 4 echo $retries;
出力:
Warning: Undefined array key "retries" in main.php on line 3期待: 3 (Warningなしで済むはずが混ざってしまいます)
空欄を埋めて実行を通す
orは真偽値としての判定であってデフォルト値の指定にはなりません。存在しないキーへの直接アクセスがそのまま実行され、Warningが出力に混ざります。??を使えば1行でWarning無しにデフォルト値を指定できます。
次の問題