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