當啓動類時,我的PHP類構造函數似乎沒有被調用。這是我的構造是什麼樣子:實例化時未調用PHP構造函數
public function __contruct()
{
$GLOBALS['page_content'] .= "<p>Constructor entered.</p>\r\n";
try
{
$this->ConstructorBase();
}
catch (Exception $e)
{
throw new Exception(
"Error in ".__FILE__."(".__LINE__."): Constructor failed.",
CLoginError::ERROR_CANNOT_INSTANTIATE, $e);
}
}
在同一個文件之後,在全球範圍內,我試圖將類實例:
$Login = new CLogin();
然而,當我檢查$GLOBALS['page_content']
,實例化後類,它是空的,就好像構造函數從未被調用一樣。奇怪的是我可以調用公共成員函數。如果你想看到它,完整的源代碼被張貼在這裏:
其錯誤你在那裏;) – Jakub 2012-01-04 20:42:42
也GLOBALS和構造函數中的異常是不好的做法 – meze 2012-01-04 20:43:41
異常在構造函數中根本不是壞習慣,它實際上建議在任何情況下trigger_error,並且是唯一有效的機制來捕獲錯誤這是在創建對象時發生的。我同意在全球範圍內,不要在任何地方使用GLOBAL ...不好的壞做法。 – 2012-01-04 20:45:46