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()
你怎麼能允許空值,而不改變父類的?
這是一個真實世界的例子,因爲父類可以是第三方庫或框架的一部分,所以更改它不是一個選項。