• ベストアンサー

new に失敗させる方法。

コンストラクタ内でファイルシステム関数などを呼んだ際に、エラーになったらオブジェクトの初期化失敗としてnew の結果をNULLにしたいんですけど、方法が分かりません。 new で NULL を返す方法はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

参考URLのnewのところの説明によると、 常にオブジェクトを返すとあるのでできないと思います。 それより、説明にも有るように例外をスローするべきだと思います。 オブジェクトをnewで作成する側では、try~catchするべきかと思います。

参考URL:
http://www.php.net/manual/ja/language.oop5.basic.php
noname#14448
質問者

お礼

必ずオブジェクトは生成されてしまうんですか。 エラーが発生するオブジェクト生成の前にtry をはってエラーをcatchするのが定石なんですね。 なるほど~。 でもそれだとオブジェクト内で発行するエラーを知っておく必要があるますね。 んー。コンストラクタで失敗専用のエラー定義を作って統一することにします。 どうもありがとうございました。