parsekit_compile_string
(PECL)
parsekit_compile_string -- Compile a string of PHP code and return the resulting op array
Description
array
parsekit_compile_string ( string phpcode [, array &errors [, int options]] )
Ðñïåéäïðïßçóç |
Αυτή η συνάρτηση είναι ΔΟΚΙΜΑΣΤΙΚΗ. Η συμπεριφορά της, το όνομα της και οτιδήποτε άλλο είναι τεκμηριωμένο σχετικά με αυτή την συνάρτηση μπορεί να αλλάξει χωρίς ειδοποίηση σε μελλοντικές εκδόσεις της PHP.
Χρησιμοποιήστε αυτή την συνάρτηση με δικό σας ρίσκο. |
Parameters
- phpcode
A string containing phpcode. Similar to the argument to eval().
- errors
A 2D hash of errors (including fatal errors) encountered during compilation.
Returned by reference.
- options
One of either PARSEKIT_QUIET or
PARSEKIT_SIMPLE. To produce varying
degrees of verbosity in the returned output.
Return Values
Returns a complex multi-layer array structure as detailed below.
Παραδείγματα
ÐáñÜäåéãìá 1. parsekit_compile_string() example
<?php $ops = parsekit_compile_string(' echo "Foo\n"; ', $errors, PARSEKIT_QUIET);
var_dump($ops); ?>
|
The above example will output: 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)
}
}
} |
|