PHP

PHPでハテナマーク2つ(??)の意味と使い方|null合体演算子

本記事では、PHPでハテナマーク2つで使えるnull合体演算子の使い方について解説しています。

PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

本書情報
著者谷藤 賢一
発売日2017/3/6
ページ数331ページ
Kindle版
レビュー
(Amazon)
(168件)

参考書が苦手な人はUdemyの動画がおすすめ
ちゃんと学ぶ、PHP+MySQL(MariaDB)入門講座

動画情報
作成者たにぐち まこと
学習時間11時間
受講者数24,526人
レビュー (4,518件)
動画の詳細はこちら

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と同様に判別されることが分かります。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村