2

私がphpのマニュアルでエラー処理を調べていたとき、誰かが競合の可能性について興味深いコメントを投稿しました。リンクは次のとおりです:http ://www.php.net/manual/en/errorfunc.configuration.php 。

基本的に、error_reporting()の前にsession_start()を呼び出すと、error_reporting()が正しく動作しなくなると述べています。代わりに、順序を反転する必要があります。私は以前にこの問題を経験した人がいることに興味がありました。

さらに重要なのは、問題がある場合、それはクラスにどのように影響するのでしょうか。たとえば、error_reporting()を含む独自のエラー処理システムを使用してクラス(ユーザーログインなど)を実装する場合、競合が発生しますか?具体的には、session_start()を含むファイルがある場合は、上記のようにクラスを呼び出します。

よろしくお願いします。

4

2 に答える 2

3

まず、2つの機能は明らかに完全に無関係です。

第二に、私はerror_reporting前と後の両方に電話をかけましsession_startたが、問題を目撃したことはありません。私のフレームワークを使用している人は誰も問題を報告していません。アプリケーションの開始近くで一度設定するのが最善error_reportingですが、他の人のコードの特定のセクションをデバッグするときに、より深いレベルで設定することもあります。

ただし、セッションを開始する前にエラーを出力する(エラーを表示する)場合、出力バッファリングを行わないと、ヘッダー警告が表示される可能性があります。

于 2012-09-10T19:31:37.627 に答える
1

質問に直接答えることはありませんが、ob_start()最初の呼び出しとして使用すると、出力バッファリングがオンのときにヘッダーとコンテンツの順序が重要でなくなるため、ここで問題が解決する可能性があります。

于 2012-09-10T19:31:26.540 に答える