PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

highlight_file> <get_browser
Last updated: Fri, 30 Jan 2009

view this page in

__halt_compiler

(No version information available, might be only in CVS)

__halt_compiler コンパイラの実行を中止する

説明

void __halt_compiler ( void )

コンパイラの実行を中止します。 これは、インストール用ファイルのようなデータを PHP スクリプトに埋め込んでいる場合に便利です。

データの開始位置(バイト値)は、定数 __COMPILER_HALT_OFFSET__ で定義されています。 これはファイル内で __halt_compiler() が使用されている場合にのみ存在します。

返り値

値を返しません。

例1 __halt_compiler() の例

<?php

// このファイルをオープンします
$fp fopen(__FILE__'r');

// データのある位置までファイルポインタを移動します
fseek($fp__COMPILER_HALT_OFFSET__);

// それを出力します
var_dump(stream_get_contents($fp));

// ここでスクリプトの実行を終了します
__halt_compiler(); インストールデータ(例targzPHP など..

注意

注意: __halt_compiler() は、いちばん外側のスコープでのみ使用可能です。



add a note add a note User Contributed Notes
__halt_compiler
gn_shallyNOSPAM at yahoo dot com
04-Jun-2008 05:56
actually, __halt_compiler did something, even in eval function, that things is set the constant __COMPILER_HALT_OFFSET__ to the right value

as all of you might know, PHP will change content of some magic constant like __FUNCTION__, __CLASS__, etc based on the situation. so do the __COMPILER_HALT_OFFSET__ constant, is a file specific constant, just like the __FILE__ constant, the content will be changed based on wich file the __halt_compiler() reside.

try this:

/**** whatever.php ****/
<?php
eval('echo __FILE__."(".__COMPILER_HALT_OFFSET__.")\n"; __halt_compiler();');
echo
__FILE__."(".__COMPILER_HALT_OFFSET__.")\n"; __halt_compiler();

if (!isset(
$whatever))
{
 
$whatever = 'whatever';
  include
__FILE__;
}
__halt_compiler();whatever
zsh
12-Oct-2007 02:11
__halt_compiler() is a language construct and therefore cannot be used as a variable function.

Also, it cannot be used in eval() -- it won't throw a syntax error, but it won't do anything either.

highlight_file> <get_browser
Last updated: Fri, 30 Jan 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites