parsekit_compile_string
(no version information, might be only in CVS)
parsekit_compile_string -- Compile une chaîne de code PHP et retourne le tableau d'opcode résultant
Description
array
parsekit_compile_string ( string phpcode [, array &errors [, int options]] )
Avertissement |
Cette fonction est
EXPERIMENTALE. Cela signifie que le comportement de
cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut
changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez
cette fonction à vos risques et périls. |
Liste de paramètres
- phpcode
Une chaîne contenant du code PHP.
Similaire à l'argument de eval().
- errors
Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation.
Retourné par référence.
- options
Soit PARSEKIT_QUIET, soit
PARSEKIT_SIMPLE.
Pour produire plusieurs degrès de retour dans la chaîne retournée.
Valeurs de retour
Retourne un tableau complexe multi-dimensionnel, structuré
comme ci-dessous.
Exemples
Exemple 1. Exemple avec parsekit_compile_string()
<?php $ops = parsekit_compile_string(' echo "Foo\n"; ', $errors, PARSEKIT_QUIET);
var_dump($ops); ?>
|
L'exemple ci-dessus va afficher : array(20) {
["type"]=>
int(4)
["type_name"]=>
string(14) "ZEND_EVAL_CODE"
["fn_flags"]=>
int(0)
["num_args"]=>
int(0)
["required_num_args"]=>
int(0)
["pass_rest_by_reference"]=>
bool(false)
["uses_this"]=>
bool(false)
["line_start"]=>
int(0)
["line_end"]=>
int(0)
["return_reference"]=>
bool(false)
["refcount"]=>
int(1)
["last"]=>
int(3)
["size"]=>
int(3)
["T"]=>
int(0)
["last_brk_cont"]=>
int(0)
["current_brk_cont"]=>
int(-1)
["backpatch_count"]=>
int(0)
["done_pass_two"]=>
bool(true)
["filename"]=>
string(17) "Parsekit Compiler"
["opcodes"]=>
array(3) {
[8594800]=>
array(5) {
["opcode"]=>
int(40)
["opcode_name"]=>
string(9) "ZEND_ECHO"
["flags"]=>
int(768)
["op1"]=>
array(3) {
["type"]=>
int(1)
["type_name"]=>
string(8) "IS_CONST"
["constant"]=>
&string(4) "Foo
"
}
["lineno"]=>
int(2)
}
["859484C"]=>
array(6) {
["opcode"]=>
int(62)
["opcode_name"]=>
string(11) "ZEND_RETURN"
["flags"]=>
int(16777984)
["op1"]=>
array(3) {
["type"]=>
int(1)
["type_name"]=>
string(8) "IS_CONST"
["constant"]=>
&NULL
}
["extended_value"]=>
int(0)
["lineno"]=>
int(3)
}
[8594898]=>
array(4) {
["opcode"]=>
int(149)
["opcode_name"]=>
string(21) "ZEND_HANDLE_EXCEPTION"
["flags"]=>
int(0)
["lineno"]=>
int(3)
}
}
} |
|