【PHP開発テクニック】null合体演算子を使いこなそう

PHPのnull合体演算子

PHPで変数の値がnullの場合とそうでない場合の処理の条件分岐はif文や三項演算子を使っても行えますが、null合体演算子を使用するとより短く簡潔に書くことができます。

null合体演算子

変数 ?? (変数の値がnullの場合)

※ null合体演算子が使用できるのはPHP7系〜となります

環境: PHP 8.1

以下の三項演算子とnull合体演算子を用いた処理はそれぞれ同じ結果となります。

<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);

// $name = "ken";
$name = null;

?>
<html>
<body>
    <!-- 三項演算子 -->
    <p>
        My Name is
        <?= $name === null ? '(no name)' : $name ?>
    </p>

    <!-- null合体演算子 -->
    <p>
        My Name is
        <?= $name ?? '(no name)' ?>
    </p>
</body>
</html>

未定義変数を扱う場合に便利

画面テンプレート等でよくあるパターンとして、ソースコード上の変数が実行時にまだ定義されていない場合、通常は Undefined variableのエラーが発生しますが、null合体演算子を使うことで事前に回避できます。

<p><?= $name ?? null ?></p>

Follow me!