エルビス演算子
PHP5.3から導入
三項演算子の第二項が省略できるもの
三項演算子
$a ? $a : $b;
エルビス演算子 // 第二項が省略されている
$a ?: $b;
上記の2つは同じ動きをする
公式から抜粋
式 expr1 ?: expr3 の結果は、expr1 が true と同等の場合はexpr1、 それ以外の場合は expr3 となります。
例えば
$a = 'Aです';
$b = 'Bです';
echo $a ?: $b;
//出力
Aです
$a = false;
$b = 'Bです';
echo $a ?: $b;
// 出力
Bです
という感じで、第一項がtrueなら第一項が評価され、第一項がfalseだったら第二項が評価される。
様々な値で試してみる
第一項の値 | 評価された項 |
---|---|
'a' | 第1項 |
1 | 第1項 |
-1 | 第1項 |
'1' | 第1項 |
0.1 | 第1項 |
'0.1' | 第1項 |
'0' | 第2項 |
0 | 第2項 |
true | 第1項 |
false | 第2項 |
null | 第2項 |
未定義の変数 | 第2項 |
空の配列 | 第2項 |
値がfalthyであれば第二項が評価されることがわかる。