マニュアルから引用
<?php // Null 合体演算子の使用例 $action = $_POST['action'] ?? 'default'; // 上の文は、この if/else 文と同じ意味です if (isset($_POST['action'])) { $action = $_POST['action']; } else { $action = 'default'; } ?>
式 (expr1) ?? (expr2) は、 expr1 が null である場合は expr2 と評価され、それ以外の場合は expr1 と評価されます。
この演算子は、左側の値が存在しない場合でも notice や warning が発生しません。 isset() と同じ挙動です。 これは、配列のキーを扱う場合に便利です
つまりこういうこと
以下のように書かれているとき、echo ($a ?? 'default');
- $a が定義されていて
NULL
ではないとき → $a - $a が定義されていて
NULL
のとき → default - $a が定義されていないとき → default
定義済みかどうかと
NULL
かどうかだけを判定するので、値が false
, 0
などであった場合はそのままその値を返します。なるほど。Null 合体演算子 | PHP: 比較演算子 – Manual