JavaScript Editor Javascript debugger     Website design 


parsekit_compile_string

Compile a string of PHP code and return the resulting op array (PECL parsekit:0.2-1.2)
array parsekit_compile_string ( string phpcode [, array &errors [, int options]] )

Warning:

This function is EXPERIMENTAL. The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own 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.

Examples

Example 1708. 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)
   }
 }
}