以下内容似乎在 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。