0

私のphp.iniでは、display_errors設定は標準でオフに設定されています。通常、index.phpファイルを次のように開始しました

ini_set('display_errors', 'On');
error_reporting(E_ALL & ~E_NOTICE);

私のニーズにはすべてうまくいきました。

最近、エラー報告が機能しなくなりました。ただし、通知は破棄されているため、次のようになります。

<?php echo $i ?>

「未定義の定数」という通知をスローします

<?php badbadbad ?>

致命的なエラー メッセージではなく、空白のページを返すだけです。

phpinfo() を確認すると、display_errors のマスター値が Off であるのに対し、ローカル値は (予想どおり) On に設定されていることがわかります。それでも、エラーメッセージは表示されませんでした。

display_errors = On の php.ini 設定を変更すると、この問題を回避できますが、永遠に解決することはできません。

ヒントはありますか?

ありがとう&brgdsデビッド

4

1 に答える 1

2

2 番目の例が失敗する理由は、実際には解析エラーであるためだと思います。

コードを実行するとき、PHP はまず実行するファイル全体を解析してコンパイルする必要があり、その後で初めて実行できます。解析中に問題が発生した場合、問題がファイルの最後にある場合でも、ファイルのコードは実行されません。つまり、ini_set()anderror_reporting()ステートメントも実行されません。

エラーのあるコードが上記のステートメントと同じファイルにある場合、できることはあまりありません。includeまたはで使用される別のファイルにある場合は、新しいエラー報告値を設定した後にrequire、インクルード呼び出しが行われていることを確認してください。少なくとも、PHP >= 5.4 で動作します。

于 2014-01-05T18:43:50.027 に答える