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

search for in the

highlight_file> <get_browser
Last updated: Fri, 05 Sep 2008

view this page in

__halt_compiler

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

__halt_compiler Beendet die Kompilerausführung

Beschreibung

void __halt_compiler ( void )

Beendet die Kompilerausführung. Dies kann sinvoll sein wenn Data in PHP Skripte eingebettet ist, wie z.B. in Installationsdateien.

Die Byteposition an der die Daten beginnen kann über die Konstante __COMPILER_HALT_OFFSET__ ermittelt werden die nur definiert ist wenn die Funlktion __halt_compiler() in der Datei benutzt wird. file.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ein __halt_compiler() Beispiel

<?php

// Datei öffnen
$fp fopen(__FILE__'r');

// Auf den Anfang der Daten positionieren
fseek($fp__COMPILER_HALT_OFFSET__);

// und diese ausgeben
var_dump(stream_get_contents($fp));

// hier Kompilation beendenn
__halt_compiler();ab hier die eigentlichen Daten (z.B.. targzPHPetc.)

Anmerkungen

Hinweis: __halt_compiler() kann nur auf der höchsten Ausführungsebene und nicht innerhalb anderer Funktionen oder Methoden benutzt werden.



add a note add a note User Contributed Notes
__halt_compiler
gn_shallyNOSPAM at yahoo dot com
04-Jun-2008 04: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 01: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, 05 Sep 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites