Code Fix

上級 › nullになりうるプロパティへのメソッド呼び出しは ?-> で守る › パターン5

nullになりうるプロパティへのメソッド呼び出しは ?-> で守る

途中のプロパティがnullかもしれないオブジェクトの連鎖に対して、通常の->でメソッドを呼ぶと致命的エラーになります。

 1  <?php
 2  class Cart {
 3      public ?Discount $discount = null;
 4  }
 5  class Discount {
 6      public function getRate(): string { return "10%"; }
 7  }
 8  $c = new Cart();
 9  echo $c->discount___getRate();
                      ^
Fatal error: Uncaught Error: Call to a member function getRate() on null in main.php:9

空欄を埋めて実行を通す

広告
広告スロット(未設定)

nullになりうるプロパティへのメソッド呼び出しは ?-> で守る

?->を使うと、途中がnullの場合は例外を投げずnullを返して処理を続けられます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)