PHPクラスのコンストラクタは、クラスの開始時に呼び出されないようです。インスタンス化した後、しかしPHPコンストラクタがインスタンス化時に呼び出されない
$Login = new CLogin();
、私は$GLOBALS['page_content']
を検査する場合:後で同じファイルで、グローバルスコープで、私はクラスをインスタンス化しようと
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);
}
}
:これは私のコンストラクタは次のようになりますコンストラクタが呼び出されなかったかのように空です。奇妙なことは、パブリックメンバー関数を呼び出すことができるということです。あなたはそれを見たい場合は、完全なソースはここに掲載されています
それはあなたがそこに持っている;) – Jakub
コンストラクタのGLOBALSと例外は悪い習慣です – meze
例外はコンストラクタ内で悪い習慣ではありませんが、実際にはどの場合でもtrigger_errorを推奨し、オブジェクトの作成中に発生します。私はGLOBALSでもどこでもGLOBALSを使用しないことに同意します...悪い悪い悪い習慣。 –