1
$someClass sc=new SomeClass();

私が知りたいのは、コンストラクターが何らかの理由(メモリが不足しているなど)で失敗した場合に変数scに何が含まれるかです。正解が見つかりませんか?

4

4 に答える 4

3

メモリの問題の例では、致命的なエラーが発生し、phpが実行を停止します。変数$scの割り当てに到達することはありません。

于 2012-09-28T14:46:19.197 に答える
2

コンストラクターは、主に2つの理由で失敗する可能性があります。

  1. メモリ不足。オブジェクトに固有ではないため、致命的なエラーが発生し、スクリプトが続行されません。

  2. 例外がスローされます'try-catch'句を使用して例外がキャッチされない限り、スクリプトは停止します。

try {
    $sc = new SomeClass(); // exception is thrown inside the constructor
} catch (Exception $e) {
    echo "Yikes, object didn't get created; error = {$e->getMessage()}\n";
}
于 2012-09-28T14:50:36.940 に答える
0

他のタイプのコードがメモリ不足などの理由で失敗した場合と同じことが起こります。PHPランタイムは致命的なエラーを発行します。それだけです。オブジェクトコンストラクタは特別ではありません。

于 2012-09-28T14:47:57.807 に答える
0

まず第一に、オブジェクト開始の構文が正しくない必要があります。$sc = new SomeClass();そして、メモリ枯渇エラーが発生し、変数$scが作成されません。

于 2012-09-28T14:46:46.433 に答える