三項演算子のような表現がわかりません。??とはなんなのでしょうか
return self::$myservice ?? self::$myservice = new MyService();
引用元
「PHPフレームワーク Laravel実践開発」 著者: 掌田津耶乃
MyServiceクラスの$myservice
にインスタンスがすでに保存されていたらそれを返し、nullならnewしたインスタンスを代入。
質問内容
??
の右側にあるself::$myservice
を返すものだと認識しているのですが、必ずnew MyService()
が代入され、新しいインスタンスが返ってくるのではないか(インスタンスがすでにある場合も上書きされる)という点です。
ご教授ください。