(PECL parsekit >= 0.2.0)
parsekit_compile_string — Compile a string of PHP code and return the resulting op array
Această funcție este EXPERIMENTALĂ. Comportamentul acestei funcții, denumirea sa și orice alte aspecte documentate în privința acestei funcții pot să fie modificate fără preaviz într-o versiune viitoare a PHP. Utilizați această funcție la propriul risc.
A string containing phpcode. Similar to the argument to eval().
A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.
One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.
Returns a complex multi-layer array structure as detailed below.
Example #1 parsekit_compile_string() example
<?php
$ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);
var_dump($ops);
?>
Exemplul de mai sus va afișa:
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) } } }