はじめに
本記事では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