__HALT_COMPILER()は、PHPの特別な言語構造です。その機能は、コードが関数に実行されるときにすぐにコンパイラの解析と後続のコードの実行を停止することです。つまり、 __halt_compiler()の後のコンテンツはPHPコードとして実行されませんが、スクリプトファイルのデータとして直接保持できます。
PHPコンパイラを停止して、後続のコードの読み取りと実行を続けます。
バイナリデータまたはカスタムメタ情報を埋め込むためによく使用されるスクリプトの最後に任意のデータを含めることができます。
1回しか使用できず、パラメーターで使用することはできません。
<?php
echo "実行を開始します\n";
__halt_compiler();
echo "このコードは実行されません\n";
// 後でいくつかのカスタムデータを配置することもできます
__HALT_COMPILER()の典型的な使用は、PHARアーカイブなどの自己完結型PHPファイルを作成するか、データを直接スクリプトに埋め込むことです。
Exit() (または同等のDIE() )は、スクリプト実行を終了するためにPHPで使用される関数です。プログラムは呼び出された直後に実行されなくなり、ステータスコードまたは文字列を出力として渡すことができます。
すぐにスクリプトの実行を停止します。
プロンプト情報を出力するか、整数ステータスコードを返すことができます。
通常、エラーに遭遇した後、またはタスクの完了後に停止を強制するために使用されます。
<?php
echo "実行を開始します\n";
if (!file_exists("config.php")) {
exit("構成ファイルは存在しません,プログラム終了\n");
}
echo "構成ファイルが存在します,実行を続けます\n";
exit()は、プロセス制御、致命的なエラーに遭遇したときのスクリプトの停止、またはCLI環境でのプログラムの実行ステータスを返すのに最適です。
側面 | __halt_compiler() | 出口() |
---|---|---|
関数 | コンパイラを停止して、後続のコードを解析し、後続のデータを保持します | すぐにスクリプトの実行を停止し、メッセージまたはステータスコードを出力します |
後続のコードを実行するかどうか | 後続のコード実行はありません | 後続のコード実行はありません |
後続のコード/データ処理 | 後続のコードは生データと見なされ、読み取りまたは処理できます | 後続のコードは処理されません |
典型的な用途 | 埋め込まれたデータ、自己完結型ファイル、ファーアーカイブ | 実行、エラー処理、プロセス制御の終了 |
複数回使用できますか | 一度だけ使用してください | 複数回呼び出すことができます |
パラメーターを提出するかどうか | パラメーターを持参できません | パラメーター(文字列または整数)を取得できます |
カスタムデータを埋め込みました<BR> パッケージングリソースや構成など、データをPHPスクリプトファイルに直接添付する必要がある場合は、PHPで解釈されることなくデータ領域を保存するために使用できます。
ファーファイルを作成します
PHAR形式は、基本的に、 __HALT_COMPILER()を使用してアーカイブデータとコードをマージする自己完結型PHPアーカイブファイルです。
コードの実行を防ぐ<br> コードが予期せず実行されないようにし、後続のデータがPHPによって解析されないことを保証するために使用されます。
エラー処理と例外終了<br> 回復できないエラーが発生したら、 Exit()を使用してプログラムを直接停止し、ユーザーにプロンプトします。
コマンドラインスクリプト制御フロー<br> CLIスクリプトでは、実行結果に基づいて特定のステータスコードが返され、スクリプトの自動化された呼び出しと管理が容易になります。
プロセスは中止されました<br> 特定の条件が満たされている場合、プログラムの実行を中止して、無効または危険なコードの実行を継続しないようにします。
要約すると、 __halt_compiler()とexit()は両方ともphpコードの実行を終了できますが、 __halt_compiler()はデータ埋め込みのツールに似ていますが、 exit()は毎日の開発におけるフローと処理の例外を制御するための重要な機能です。彼らの違いと用途を理解することは、開発者がより堅牢で柔軟なPHPプログラムを書くのに役立ちます。