ファイルinfo.phpテストを確立するときに、いくつかのphpメソッドの構文エラーをテストします。何も示唆するものが見つからず、500エラーページの
設定に直接報告されます。ini_set( 'display_errors'、 'On'); error_reporting(E_ALL | E_STRICT);その後は動作せず、エラーメッセージは表示されません。
これらの2つの構成をphp.ini構成ファイルで直接変更すると、エラーメッセージが表示されます。
動的構成が機能しないのはなぜですか?動的設定が機能しなかった可能性がありますか?php.iniを元の状態に復元した後、info.phpで間違った構文が削除されます。コードは、次のとおりです。
<?php
ini_set('display_errors','On');
error_reporting(E_ALL | E_STRICT);
phpinfo();
phpinfo情報が
印刷されます。印刷されたコンテンツから、動的構成が有効になっていることが示されますが、コードの構文エラーが表示されないのはなぜですか。
phpファイルの実行メカニズムが無視されるため
PHPはスクリプト言語であり、コードを実行する前に、一連のコンパイルプロセスが必要です。ファイルのコンパイル段階では、コード構文が検証されますが、この時点ではコードは実行されないため、ファイルの先頭の動的構成は無意味です。コンパイル時に構文エラーと判断され、スクリプトの実行が停止しました。デフォルト設定は直接呼び出され、エラーメッセージは表示されません。これが、php.iniの構成を有効にできる理由ですが、動的構成は無効です。
この時点で新しいファイルerror.phpを作成しましょう
<?php
$a = 'dd'
echo $a
info.phpファイルを変更します
<?php
ini_set('display_errors','On');
error_reporting(E_ALL | E_STRICT);
include('./error.php');
info.phpファイルを実行した後、この時点でエラーメッセージがスムーズに表示されました。
現時点ではinfo.phpファイルに構文エラーがないため、スクリプトはスムーズに実行され始め、動的構成が最初に実行されて有効になり、次にerror.phpファイルをインポートする操作が実行されます。error.phpファイルがインポートされた後、ファイルの検証およびコンパイル操作が開始され、ファイルに構文エラーがあることが判明しました。有効な構成に従って、エラーメッセージがスローされます。
概要:開発プロセス中に、これらの動的構成は通常、エントリファイルまたは構成ファイルに表示され、エラーコードと同じファイルに表示されることはめったになく、動的構成はエラーの影響を受けないため、以前はこの問題に気づいていませんでした。コード。