不知何故,我的思想远离当前的问题,我犯了一个可怕的错误。 我在一个刚刚初始化类属性的方法中调用了父构造函数..或者我..父构造函数工作是设置ID值。那么PHP允许我这样做。但是,这不正确?它看起来像我可以用同样的方式调用类自己的构造函数。难道不应该只允许构造函数在创建类的实例时被调用...并且它们仅在创建实例时才被调用..调用方法内的构造函数
<?php
class A {
public function __construct() {
echo "Test<br />";
}
}
class B extends A {
public function test() {
parent::__construct();
}
}
$b = new B();
$b->test();
// OUTPUT:
// Test
// Test
?>
编辑:所以结论是,PHP允许你调用方法内的构造函数,但它实际上什么都不做。另一个“TEST”字符串来自基类的构造函数。
我敢肯定,会导致内爆(“,”,$ theInterwebs) – Detect 2011-03-02 21:49:15
道德上,这是绝对错误的。只是不要这样做。 – Detect 2011-03-02 21:49:56
当你急着做东西,然后意识到发生的事情非常奇怪,这很有趣。 :) – PPPHP 2011-03-02 22:03:37