Ikeda's Blog

エルビス演算子とNull合体演算子で、それぞれの挙動の違い

エルビス演算子(PHP5.3以降)

$val = ($_GET['value']) ?: 'default';
var_dump($_GET['value']) var_dump($val) 備考
NULL string(7) "default" Notice: Undefined index 発生
string(0) "" string(7) "default" -
string(3) "aaa" string(3) "aaa" -

Null合体演算子(PHP7.0以降)

$val = ($_GET['value']) ?? 'default';
var_dump($_GET['value']) var_dump($val) 備考
NULL string(7) "default" -
string(0) "" string(0) "" -
string(3) "aaa" string(3) "aaa" -