エルビス演算子 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