PHP: 新機能 - Manual (PHP 5.6.x から PHP 7.0.x への移行)

上記ページの「Null 合体演算子」の項を読んでみる。
$username = $_GET['user'] ?? 'nobody';
// 上のコードは、次のコードと同じ意味です。
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

$baz = 3;
$qux = 4;
echo $foo ?? $bar ?? $baz ?? $qux; // 出力は 3 です

めっちゃ便利やんけっ!

実はこの記事を下書き保存して半月以上経過したのだが、いまだ使用機会ナシ。
だって、例えば
$bar = false;
$baz = 3;
$qux = 4;
var_dump($foo ?? $bar ?? $baz ?? $qux); // 出力は bool(false) です

のように、falseと評価される値が入っていた場合の扱いが、希望にそぐわなかった。
こんな感じで「エラー制御演算子」と併せて「三項演算子の短縮形」を使用しましたとさ。
$bar = false;
$baz = 3;
$qux = 4;
var_dump(@$foo ?: @$bar ?: @$baz ?: @$qux); // 出力は int(3)です


「三項演算子の短縮形」には新しい名前をつけてあげなかったんだね。
まあ、『三項演算子を短縮したもの』だからねぇ。
「Null 合体演算子」のほうはそんな表現ができない、新しい演算だから、新しい名前が必要だった、ということか。


ところで、次の項にある「宇宙船演算子」って。。
「spaceship operator」の和訳なんだねー。
<=> この形が宇宙船に見えたんだろうねー。
カッコいいねー。
でも括弧じゃないねー。不等号だねー。

…なんだこの記事(-_-;)