鱒身(Masu_mi)のブログ

知った事をメモする場所。

__halt_compiler の使い方

概要

PHP::__halt_compiler の挙動・使い方についてまとめる。

要点

__halt_compiler
  • PHPコンパイラを停止するコンパイル時命令
  • コンパイラ命令の1つ
  • 一番外側のスコープで実行可能
__COMPILER_HALT_OFFSET__
  • __halt_compiler が使われた翻訳単位で使用可能なマジック定数
  • コンパイル停止オフセット

サンプル

自分自身のコンパイル中止以後を出力する。

<?php
echo file_get_contents(__FILE__,false,null,__COMPILER_HALT_OFFSET__);
__halt_compiler();DATA PART

用途

例えばcomposer.phar などのインストーラの様に、1ファイルでデータ部実行部を持ちたい時に使う。 Phar が生成するアーカイブファイル内部で使われている。