上級 › nullになりうるプロパティへのメソッド呼び出しは ?-> で守る › パターン1
nullになりうるプロパティへのメソッド呼び出しは ?-> で守る
途中のプロパティがnullかもしれないオブジェクトの連鎖に対して、通常の->でメソッドを呼ぶと致命的エラーになります。
1 <?php 2 class User { 3 public ?Address $address = null; 4 } 5 class Address { 6 public function getCity(): string { return "Tokyo"; } 7 } 8 $u = new User(); 9 echo $u->address___getCity(); ^
Fatal error: Uncaught Error: Call to a member function getCity() on null in main.php:9
空欄を埋めて実行を通す
$u->addressはnullのままです。通常の->でメソッドを呼ぶと致命的エラーになります。?->を使えば、途中がnullの場合は例外を投げずnullを返して処理を続けられます。
次の問題