【发布时间】:2014-12-10 22:20:57
【问题描述】:
通常,当子类具有与其父类不同的函数参数时,PHP 严格标准会让您知道:
严格标准:Boele::bla() 的声明应与 foo.php 中的 Oele::bla($one, Exception $two) 兼容
它不会破坏任何东西,但它会让你知道它并不酷。我同意。
然而,构造函数似乎得到了特殊待遇:
class Oele {
function __construct($one, Exception $two) {}
function bla($one, Exception $two) {}
}
class Boele extends Oele {
function __construct(Exception $two) {}
function bla(Exception $two) {}
}
__construct() 和 bla() 方法在 parent 和 child 中都是不同的,但是 PHP 只通知 bla(),而不是 __construct()。
为什么?? 对构造函数这样做不是同样“糟糕”吗?
(我在这里运行的是 PHP 5.5.17,但正如您在 3v4l 上看到的,它对所有 PHP 5 都一样。)
【问题讨论】:
标签: php constructor strict