【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

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

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

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/04/23 02:10時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

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アクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次