2024-09-01 PHP Null 合体演算子
PHP 7.0からNull 合体演算子が追加されている。
Null 合体演算子
null 合体演算子 (??) がシンタックスシュガーとして追加されました。 三項演算子と isset() を組み合わせる よくありがちなパターンを、より簡単に書くためのものです。 この演算子は、もし第一オペランドが非 null の値であればそれを返し、 そうでない場合は第二オペランドを返します。
<?php
// $_GET['user'] を取得します。もし存在しない場合は
// 'nobody' を用います。
$username = $_GET['user'] ?? 'nobody';
// 上のコードは、次のコードと同じ意味です。
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
試してみる
php > echo null ?? 1;
1
php > echo $undefined_var ?? 1;
1
JavaScript でも利用可能
Null 合体演算子 (??) は論理演算子の一種です。この演算子は左辺が null または undefined の場合に右の値を返し、それ以外の場合に左の値を返します。
Null 合体演算子 (??) - JavaScript | MDN
C#が祖先
なお、Null 合体演算子を最初に取り入れたのは C# っぽい。
string result = possiblyNullString ?? "デフォルト値";