parsekit_compile_string
(PECL parsekit:0.2-1.2)
parsekit_compile_string — Compile a string of PHP code and return the resulting op array
Description
Den här funktionen är EXPERIMENTELL. Dess beteende, namnet på den, och allt annat dokumenterat om den här funktionen kan ändras i framtida utgåvar av PHP. Använd den på egen risk.
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.
Exempel
Example#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) } } }