次のようなタイプヒント入力パラメーターを持つメソッドをオーバーライドする場合があります。
class FooParent
{
public function bar(BazInterface $baz)
{
// ...
}
}
また、入力パラメーターとしてnull値を渡すことを許可する必要があります。
インターフェイスタイプのヒントを削除した場合
class Foo extends FooParent
{
public function bar($baz)
{
// ...
}
}
次のようなエラーが発生します。
Fatal error: Declaration of Foo::bar() must be compatible with that of FooParent::bar()
親クラスを変更せずにnull値を許可するにはどうすればよいですか?
親クラスはサードパーティのライブラリまたはフレームワークの一部である可能性があるため、これは実際の例です。したがって、それを変更することはできません。