2012-04-16 12 views
0

error_reporting関数で奇妙な問題が1つあります。PHPのerror_reportingレベルを保存して復元する

現在のerror_reportingレベルを保存し、数行のエラー報告を無効にして元に戻したいとします。 は、だから私は、次のコードを持っている:私は最後の行を削除する場合

$oldErrorReporting = error_reporting(); 
error_reporting(0); 
//Some code, that will generate warning, or error, that I don't want to show 
error_reporting(oldErrorReporting); 

ので、エラーがないし、すべてが正常に動作します。しかし最後の行を追加すると、エラー報告が無効になっている間にコードにエラーが発生します。 error_reportingレベルが0の間に発生したエラーをクリアし、デフォルトのエラー報告レベルを復元しましたが、エラーレポートがオフになっている間に発生したエラーはありませんでしたか?

+0

これは文字通りあなたですコード?それで '$'がありません。さもなければ、エラー抑制演算子 '@'について知っていますか?また、エラーを引き起こすコードはどのようなものですか? – deceze

答えて

1

は、多分それは(がちょうど&ペーストをコピー(および)uneccesssary行を削除し、問題のためではない書き換えコードをしてください、もしそうであれば)単にタイプミスだが、あなたはあなたの最後の行に$ -signを忘れてしまった:

error_reporting($oldErrorReporting); 
+0

残念ながら、私の質問にコードを貼り付けたのはちょうどタイプでした。 – Ivica

1

どのようなコードで警告が生成されますか?それはfuncitonある場合は、警告自体を抑制するために、デバッグレベルを下げるのではなく、してみてください - 書き込み「@」関数名の前に

が見てい:

Suppress error with @ operator in PHP

+0

imap_open関数に問題があり、何らかの理由でimapサーバーとの接続に失敗した場合にエラーが発生し、回避する必要があります。IMAPサーバーに接続できるかどうかをユーザーに通知します。 。 エラーを防ぐために@で試しましたが、期待どおりに動作しません。 – Ivica

+0

ここでコードの大部分を投稿してもよろしいですか?エラー、条件、例外などを処理するいくつかの方法があります – xholicka

関連する問題