- 92 名前:86 mailto:sage [2008/04/26(土) 05:24:31 ID:???]
- >>91
すみません。自己解決しました。 初めの説明がちょっとおかしかったりしてるので補足します。 Zend_DateObjectの1016行目で、(ここ最初にちゃんといえてなかったです) if (!@timezone_open($zone)) { となっていますが、このZend_Dateのコンストラクタの第一引数がnullだと、 上記の$zoneがintのタイムスタンプで入ってきます。 そうすると、timezone_open()はタイムゾーン文字列が渡されることを期待しているので、 E_WARNINGを発しますが、@で抑制されます。(通常は。) しかし、独自のエラーハンドラをすべてのエラーレベルに対して設定していて、 そのハンドラの中で@付きのエラー(ハンドラ内でのerror_reporting()の戻り値が0の場合)に対して適切な処理を行っていないと、 本来の@によるエラー抑制は無視され、処理が停止します。 このためnew Zend_Date(パラメータなし)がこけていました。 これは、Zend_Loaderの160行目でもおきます。。 (独自エラーハンドラのせいで@fopen()の@が効かないので) E_WARNINGに対しても独自のエラーハンドラを適用している場合は、ZFでは色々と気をつけないといけないみたいです。 以上、お騒がせしました。
|

|