phpスクリプトの実行について

ファイル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ファイルがインポートされた後、ファイルの検証およびコンパイル操作が開始され、ファイルに構文エラーがあることが判明しました。有効な構成に従って、エラーメッセージがスローされます。

ここに画像の説明を挿入

概要:開発プロセス中に、これらの動的構成は通常、エントリファイルまたは構成ファイルに表示され、エラーコードと同じファイルに表示されることはめったになく、動的構成はエラーの影響を受けないため、以前はこの問題に気づいていませんでした。コード。

おすすめ

転載: blog.csdn.net/u012830303/article/details/94570151