【PHP7.4】”??=” Nullの場合の代入演算子の使い方を紹介

PHP
スポンサーリンク

はじめに

本記事ではPHP7.4で追加された新機能の一つ、Nullの場合の代入演算子”??=”(Null coalescing assignment operator)の使い方を紹介します。

使用例

動作確認に使用するクラス

class Human
{
    protected string $name;

    public function setName($name): void
    {
        $this->name = $name;
    }

    public function getName(): string
    {
        return $this->name;
    }
}

変数がNullの場合に値が設定される例

上記のクラスを用いて、”??=”を使用した例が次のコードです。
main()関数にnullが渡されたとき、”??=”の実行タイミングで’Alice’が代入されます。

function main($name) {
    $human = new Human;

    $name ??= 'Alice';

    $human->setName($name);
    echo $human->getName(); // Alice
}

main(null);

変数がNullでないため値が設定されない例

function main($name) {
    $human = new Human;

    $name ??= 'Alice';

    $human->setName($name);
    echo $human->getName(); // Blue
}

main('Blue');

参考

PHP: 新機能 - Manual