当启动类时,我的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