为什么PHP允许在异常中违反LSP但在常规类中不允许违反LSP(声明......应该兼容..)?

时间:2015-08-05 08:30:47

标签: php

好的,请看看:

NSString

这会抛出class MyParent { public function myF($one, $two, $three) { } } class MyChild extends MyParent { public function myF($one) { } } - 这是由于弱类型语言中没有重载支持,但好的副作用是它强制执行LSP。 没问题

让我感到困惑的是,即使\Exception's own __construct() takes three argument,以下代码也不会引发同样的错误:

Strict standards: Declaration of MyChild::myF() should be compatible with MyParent::myF()

为什么?为什么异常行为不同?这是在php.net网站上正式记录的吗?

0 个答案:

没有答案