本記事では、PHPでハテナマーク2つで使えるnull合体演算子の使い方について解説しています。
ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】
PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!
null合体演算子とは
null合体演算子とは、値がNullであるかを判別するために使われる演算子です。
null合体演算子はPHPのバージョン7以降で使うことができ、バージョン7より前ではissetと三項演算子を組み合わせて値がNullであるかを判別していました。
<?php
$num = null;
$num = isset($num) ? $num : '1';
?>
null合体演算子の使い方
null合体演算子の使い方は以下のとおりです。
$num = null;
$num = $num ?? 1;
??の左に値がnullであるか調べたい変数などを指定し、??の右に値がnullであった場合に設定したい値を指定します。??の左に設定している値がnullの場合はそのまま値を返し、値がnullだった場合は??の右に設定している値を返します。
上記のコードだと変数$numにnullが代入されているので、変数$numには??の右に設定されている1が代入されます。
null合体演算子に該当するもの
冒頭でnull合体演算子は値がNullであるかどうかを判別すると解説しましたが、実は値がNullではなく未定義の場合でも??の右に設定されている値が適用されます。
下記のサンプルコードで検証してみましょう。
<?php
$str;
$str = $str ?? '値がnullだと判断されました!';
echo($str);
?>

サンプルコードの実行結果を出力してみると、??の右に設定されている「値がnullだと判断されました!」の文字列が表示されました。つまり、値が未定義の場合もnullと同様に判別されることが分かります。