不知何故,我的思想遠離當前的問題,我犯了一個可怕的錯誤。 我在一個剛剛初始化類屬性的方法中調用了父構造函數..或者我..父構造函數工作是設置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