PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPの二重疑問符(??)演算子とは?意味と使い方をわかりやすく解説

PHP 7で登場した「??」演算子とは

PHP 7から新しく追加された演算子の一つに、二重疑問符(??)があります。これはNull合体演算子(Null Coalescing Operator)と呼ばれるもので、変数の存在チェックとデフォルト値の指定を1行で簡潔に書ける便利な演算子です。

Null合体演算子の基本的な動作

??演算子は、次のようなルールで動作します。

  • 最初のオペランドが存在し、かつNULLでない場合 → 最初のオペランドの値を返す
  • それ以外の場合 → 2番目のオペランドの値を返す

評価は左から右へ行われ、$a ?? $b ?? $c のように連結(チェーン)形式で記述することも可能です。左側から順に判定が行われ、最初にNULL以外だった値が結果として返されます。

なお、$a ?? $b は従来の三項演算子で書く isset($a) ? $a : $b とほぼ同じ意味ですが、isset() を明示的に書く必要がなく、未定義の変数に対しても警告(Notice)が発生しない点が大きなメリットです。

サンプルコード1:未定義の変数に対する動作

<?php
    // $a は定義されていない
    echo $a ?? 9 ?? 45;
?>

出力結果

9

この例では $a が未定義のため最初のオペランドはスキップされ、次の 9 が返されます。さらに右にある 45 まで評価されることはありません。

サンプルコード2:連結(チェーン)形式の使用例

<?php
    // $a は定義されていない
    $b = 34;
    echo $a ?? $b ?? 7;
?>

出力結果

34

$a はNULL(未定義)なので判定が次のオペランドへ移り、値が設定されている $b = 34 がそのまま返されます。

まとめ

二重疑問符(??)演算子は、「値があればそれを使い、なければデフォルト値を使う」という処理をシンプルに記述できる、PHP 7以降で使える演算子です。フォーム入力値や設定値の取得など、NULLチェックが必要な場面でコードを大きく読みやすくできるため、ぜひ活用してみてください。

  1. LinuxにおけるBashとは?意味・仕組み・使い方を徹底解説

    Linuxを使っているなら、フォーラムや記事で「Bash」という言葉を目にしたことがあるでしょう。ターミナルの同義語のように使われることもありますが、Bashとターミナルエミュレータはまったく別のアプリケーションです。では、Bashとは一体何なのでしょうか?この記事では、Bashの正体、その役割、そして実際に使い始める方法までをわかりやすく解説します。 Bashとは何か Bashという名前は「Bourne-Again SHell」の頭文字から来ています。これは、Bashの前身の一つを作ったStephen Bourne(スティーブン・ボーン)の名前をもじった言葉遊びです。最初のベータ版は1989

  2. アプリ内課金とは?意味から仕組み、メリット・デメリットまで徹底解説

    モバイルアプリを日常的に使っている方なら、「アプリ内課金」という言葉に触れたことがあるはずです。ただし、その正確な意味や仕組みについては、曖昧に感じている人も少なくないでしょう。 アプリ内課金について理解することは重要です。実際に利用する際だけでなく、プライバシー、セキュリティ、法規制など、常に変化し続ける関連議論に参加するためにも必要な知識だからです。 「アプリ内課金」とは何を意味するのか? Investopediaでは、アプリ内課金を「モバイルデバイス上のアプリケーション内部から商品やサービスを購入すること」と定義しています。これは出発点として良い定義ですが、情報源や文脈によって、より細か