PHP:接口继承:在子接口中添加可选参数

  • 本文关键字:接口 参数 添加 继承 PHP php
  • 更新时间 :
  • 英文 :


以下内容似乎在 PHP 5.5.6 中工作正常,但在 PHP 5.3 中则不行:
(在我写的一段代码上报告这个错误报告之后)
(假定错误消息Fatal error: Can't inherit abstract function ...

interface A {
  function foo($a);
}
interface B extends A {
  function foo($a, $b = NULL);
}

据我了解,这并不违反LSP原则。您不被允许缩小签名范围,但您应该被允许丢失它。

这样做的目的是我有一个无法为 BC 更改的接口 A,但随后我仍然想引入附加参数。在出现此错误报告之前,这似乎一切正常。

这只是PHP版本的东西吗?

这似乎确实是一个版本问题。
https://stackoverflow.com/a/21381524/246724:

"它帮助从 PHP 5.3.8 升级到 PHP 5.3.28。

最新更新