4
那里当你忽略其类型暗示输入参数这样的方法有一些情况:捕致命错误:传递给富::酒吧(参数1)必须实现接口BazInterface,空给出
class FooParent
{
public function bar(BazInterface $baz)
{
// ...
}
}
而且你想允许传递空值作为输入参数。
如果删除接口类型提示
class Foo extends FooParent
{
public function bar($baz)
{
// ...
}
}
,你会得到这样的错误:
Fatal error: Declaration of Foo::bar() must be compatible with that of FooParent::bar()
你怎么能允许空值,而不改变父类的?
这是一个真实世界的例子,因为父类可以是第三方库或框架的一部分,所以更改它不是一个选项。