【PHP】null合体演算子がいい感じにしてくれるのはnullだけじゃなくて未定義も
http://php.net/manual/ja/migration70.new-features.php#migration70.new-features.null-coalesce-op
の「Null 合体演算子」の項に書いてある通りっちゃそうなんですが、
「null合体演算子」という名前からだとnullの場合にデフォルト値に変えるのに使える印象ですが、
未定義:変数が定義されていなかったり、配列のキーが存在しなかったりする場合にも使えます。
// $hogeはここまでで出てきていない echo $hoge ?? 'empty' . PHP_EOL; // -> empty echo $hoge['fuga'] ?? 'empty' . PHP_EOL; // -> empty
つまり以下の2つのコードは等価ではないってことですね。
$fuga = $hoge; $fuga = $hoge ?? null;
最初、「null合体演算子の2項目をnull
にしたら」意味なくない?って思っちゃいました。
便利ですね。でもさらに欲が出て$hoge ??= 'empty';
(+=
的な感じ)みたいにも書けるようになって欲しくなってきた……