エルビス演算子 2013/10/26
三項演算子の2項目が省略されたもの。?: を顔文字として見たときに「エルビス演算子」という名前の由来がわかる(右に90度回転させると)。デフォルト値を設定する場合などに便利。
Groovy 2013/11/08
a ?: b
という記述で
a ? a : b
という意味になる。aが null だったらデフォルトの値にする、という使い方などに便利。null だけでなく 0 や "" の場合もbになる。
PHP 2016/08/14
PHP5.3以降でエルビス演算子を使える。
$a ?: $b
は
$a ? $a : $b
と同じ意味になる。三項演算子参照。
$a が null や空文字列だった場合などにデフォルトの値にする、という使い方などに便利。
$a が false, null, 0, 0.0, '', '0', array()
の場合に $b になり、それ以外の場合は、$a になる。
-> 論理値への変換
PHP 7からはNull Coalescing Operator (Null合体演算子)という??演算子がある。
?? の判定は isset と同様で、null 以外が代入されている場合にその値を返し、null が代入されているかまたはまだ一度もその変数に代入されていない場合に
?? の右を返す。
$s = $cond ?? "";
var_export($s);
// => ''
$cond = false;
$s = $cond ?? "";
var_export($s);
// => false