エルビス演算子
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であれば第二項が評価されることがわかる。