3v4l.org

run code in 300+ PHP versions simultaneously
<?php //https://github.com/php/php-src/blob/master/Zend/micro_bench.php function hallo() { } function simpleucall($n) { for ($i = 0; $i < $n; $i++) hallo(); } function simpleudcall($n) { for ($i = 0; $i < $n; $i++) hallo2(); } function hallo2() { } function simpleicall($n) { for ($i = 0; $i < $n; $i++) func_num_args(); } class Foo { static $a = 0; public $b = 0; const TEST = 0; static function read_static($n) { for ($i = 0; $i < $n; ++$i) { $x = self::$a; } } static function write_static($n) { for ($i = 0; $i < $n; ++$i) { self::$a = 0; } } static function isset_static($n) { for ($i = 0; $i < $n; ++$i) { $x = isset(self::$a); } } static function empty_static($n) { for ($i = 0; $i < $n; ++$i) { $x = empty(self::$a); } } static function f() { } static function call_static($n) { for ($i = 0; $i < $n; ++$i) { self::f(); } } function read_prop($n) { for ($i = 0; $i < $n; ++$i) { $x = $this->b; } } function write_prop($n) { for ($i = 0; $i < $n; ++$i) { $this->b = 0; } } function assign_add_prop($n) { for ($i = 0; $i < $n; ++$i) { $this->b += 2; } } function pre_inc_prop($n) { for ($i = 0; $i < $n; ++$i) { ++$this->b; } } function pre_dec_prop($n) { for ($i = 0; $i < $n; ++$i) { --$this->b; } } function post_inc_prop($n) { for ($i = 0; $i < $n; ++$i) { $this->b++; } } function post_dec_prop($n) { for ($i = 0; $i < $n; ++$i) { $this->b--; } } function isset_prop($n) { for ($i = 0; $i < $n; ++$i) { $x = isset($this->b); } } function empty_prop($n) { for ($i = 0; $i < $n; ++$i) { $x = empty($this->b); } } function g() { } function call($n) { for ($i = 0; $i < $n; ++$i) { $this->g(); } } function read_const($n) { for ($i = 0; $i < $n; ++$i) { $x = $this::TEST; } } } function read_static($n) { for ($i = 0; $i < $n; ++$i) { $x = Foo::$a; } } function write_static($n) { for ($i = 0; $i < $n; ++$i) { Foo::$a = 0; } } function isset_static($n) { for ($i = 0; $i < $n; ++$i) { $x = isset(Foo::$a); } } function empty_static($n) { for ($i = 0; $i < $n; ++$i) { $x = empty(Foo::$a); } } function call_static($n) { for ($i = 0; $i < $n; ++$i) { Foo::f(); } } function create_object($n) { for ($i = 0; $i < $n; ++$i) { $x = new Foo(); } } define('TEST', null); function read_const($n) { for ($i = 0; $i < $n; ++$i) { $x = TEST; } } function read_auto_global($n) { for ($i = 0; $i < $n; ++$i) { $x = $_GET; } } $g_var = 0; function read_global_var($n) { for ($i = 0; $i < $n; ++$i) { $x = $GLOBALS['g_var']; } } function read_hash($n) { $hash = array('test' => 0); for ($i = 0; $i < $n; ++$i) { $x = $hash['test']; } } function read_str_offset($n) { $str = "test"; for ($i = 0; $i < $n; ++$i) { $x = $str[1]; } } function issetor($n) { $val = array(0,1,2,3,4,5,6,7,8,9); for ($i = 0; $i < $n; ++$i) { $x = $val ?: null; } } function issetor2($n) { $f = false; $j = 0; for ($i = 0; $i < $n; ++$i) { $x = $f ?: $j + 1; } } function ternary($n) { $val = array(0,1,2,3,4,5,6,7,8,9); $f = false; for ($i = 0; $i < $n; ++$i) { $x = $f ? null : $val; } } function ternary2($n) { $f = false; $j = 0; for ($i = 0; $i < $n; ++$i) { $x = $f ? $f : $j + 1; } } /*****/ function empty_loop($n) { for ($i = 0; $i < $n; ++$i) { } } function getmicrotime() { $t = gettimeofday(); return ($t['sec'] + $t['usec'] / 1000000); } function start_test() { ob_start(); return getmicrotime(); } function end_test($start, $name, $overhead = null) { global $total; global $last_time; $end = getmicrotime(); ob_end_clean(); $last_time = $end-$start; $total += $last_time; $num = number_format($last_time,3); $pad = str_repeat(" ", 24-strlen($name)-strlen($num)); if (is_null($overhead)) { echo $name.$pad.$num."\n"; } else { $num2 = number_format($last_time - $overhead,3); echo $name.$pad.$num." ".$num2."\n"; } ob_start(); return getmicrotime(); } function total() { global $total; $pad = str_repeat("-", 24); echo $pad."\n"; $num = number_format($total,3); $pad = str_repeat(" ", 24-strlen("Total")-strlen($num)); echo "Total".$pad.$num."\n"; } const N = 500; $t0 = $t = start_test(); empty_loop(N); $t = end_test($t, 'empty_loop'); $overhead = $last_time; simpleucall(N); $t = end_test($t, 'func()', $overhead); simpleudcall(N); $t = end_test($t, 'undef_func()', $overhead); simpleicall(N); $t = end_test($t, 'int_func()', $overhead); Foo::read_static(N); $t = end_test($t, '$x = self::$x', $overhead); Foo::write_static(N); $t = end_test($t, 'self::$x = 0', $overhead); Foo::isset_static(N); $t = end_test($t, 'isset(self::$x)', $overhead); Foo::empty_static(N); $t = end_test($t, 'empty(self::$x)', $overhead); read_static(N); $t = end_test($t, '$x = Foo::$x', $overhead); write_static(N); $t = end_test($t, 'Foo::$x = 0', $overhead); isset_static(N); $t = end_test($t, 'isset(Foo::$x)', $overhead); empty_static(N); $t = end_test($t, 'empty(Foo::$x)', $overhead); Foo::call_static(N); $t = end_test($t, 'self::f()', $overhead); call_static(N); $t = end_test($t, 'Foo::f()', $overhead); $x = new Foo(); $x->read_prop(N); $t = end_test($t, '$x = $this->x', $overhead); $x->write_prop(N); $t = end_test($t, '$this->x = 0', $overhead); $x->assign_add_prop(N); $t = end_test($t, '$this->x += 2', $overhead); $x->pre_inc_prop(N); $t = end_test($t, '++$this->x', $overhead); $x->pre_dec_prop(N); $t = end_test($t, '--$this->x', $overhead); $x->post_inc_prop(N); $t = end_test($t, '$this->x++', $overhead); $x->post_dec_prop(N); $t = end_test($t, '$this->x--', $overhead); $x->isset_prop(N); $t = end_test($t, 'isset($this->x)', $overhead); $x->empty_prop(N); $t = end_test($t, 'empty($this->x)', $overhead); $x->call(N); $t = end_test($t, '$this->f()', $overhead); $x->read_const(N); $t = end_test($t, '$x = Foo::TEST', $overhead); create_object(N); $t = end_test($t, 'new Foo()', $overhead); read_const(N); $t = end_test($t, '$x = TEST', $overhead); read_auto_global(N); $t = end_test($t, '$x = $_GET', $overhead); read_global_var(N); $t = end_test($t, '$x = $GLOBALS[\'v\']', $overhead); read_hash(N); $t = end_test($t, '$x = $hash[\'v\']', $overhead); read_str_offset(N); $t = end_test($t, '$x = $str[0]', $overhead); issetor(N); $t = end_test($t, '$x = $a ?: null', $overhead); issetor2(N); $t = end_test($t, '$x = $f ?: tmp', $overhead); ternary(N); $t = end_test($t, '$x = $f ? $f : $a', $overhead); ternary2(N); $t = end_test($t, '$x = $f ? $f : tmp', $overhead); total($t0, "Total");
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/P9Mg1
function name:  (null)
number of ops:  368
compiled vars:  !0 = $g_var, !1 = $t0, !2 = $t, !3 = $overhead, !4 = $last_time, !5 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  170     0  E >   INIT_FCALL                                               'define'
          1        SEND_VAL                                                 'TEST'
          2        SEND_VAL                                                 null
          3        DO_ICALL                                                 
  184     4        ASSIGN                                                   !0, 0
  284     5        DECLARE_CONST                                            'N', 500
  286     6        INIT_FCALL                                               'start_test'
          7        DO_FCALL                                      0  $8      
          8        ASSIGN                                           ~9      !2, $8
          9        ASSIGN                                                   !1, ~9
  287    10        INIT_FCALL                                               'empty_loop'
         11        FETCH_CONSTANT                                   ~11     'N'
         12        SEND_VAL                                                 ~11
         13        DO_FCALL                                      0          
  288    14        INIT_FCALL                                               'end_test'
         15        SEND_VAR                                                 !2
         16        SEND_VAL                                                 'empty_loop'
         17        DO_FCALL                                      0  $13     
         18        ASSIGN                                                   !2, $13
  289    19        ASSIGN                                                   !3, !4
  290    20        INIT_FCALL                                               'simpleucall'
         21        FETCH_CONSTANT                                   ~16     'N'
         22        SEND_VAL                                                 ~16
         23        DO_FCALL                                      0          
  291    24        INIT_FCALL                                               'end_test'
         25        SEND_VAR                                                 !2
         26        SEND_VAL                                                 'func%28%29'
         27        SEND_VAR                                                 !3
         28        DO_FCALL                                      0  $18     
         29        ASSIGN                                                   !2, $18
  292    30        INIT_FCALL                                               'simpleudcall'
         31        FETCH_CONSTANT                                   ~20     'N'
         32        SEND_VAL                                                 ~20
         33        DO_FCALL                                      0          
  293    34        INIT_FCALL                                               'end_test'
         35        SEND_VAR                                                 !2
         36        SEND_VAL                                                 'undef_func%28%29'
         37        SEND_VAR                                                 !3
         38        DO_FCALL                                      0  $22     
         39        ASSIGN                                                   !2, $22
  294    40        INIT_FCALL                                               'simpleicall'
         41        FETCH_CONSTANT                                   ~24     'N'
         42        SEND_VAL                                                 ~24
         43        DO_FCALL                                      0          
  295    44        INIT_FCALL                                               'end_test'
         45        SEND_VAR                                                 !2
         46        SEND_VAL                                                 'int_func%28%29'
         47        SEND_VAR                                                 !3
         48        DO_FCALL                                      0  $26     
         49        ASSIGN                                                   !2, $26
  296    50        INIT_STATIC_METHOD_CALL                                  'Foo', 'read_static'
         51        FETCH_CONSTANT                                   ~28     'N'
         52        SEND_VAL                                                 ~28
         53        DO_FCALL                                      0          
  297    54        INIT_FCALL                                               'end_test'
         55        SEND_VAR                                                 !2
         56        SEND_VAL                                                 '%24x+%3D+self%3A%3A%24x'
         57        SEND_VAR                                                 !3
         58        DO_FCALL                                      0  $30     
         59        ASSIGN                                                   !2, $30
  298    60        INIT_STATIC_METHOD_CALL                                  'Foo', 'write_static'
         61        FETCH_CONSTANT                                   ~32     'N'
         62        SEND_VAL                                                 ~32
         63        DO_FCALL                                      0          
  299    64        INIT_FCALL                                               'end_test'
         65        SEND_VAR                                                 !2
         66        SEND_VAL                                                 'self%3A%3A%24x+%3D+0'
         67        SEND_VAR                                                 !3
         68        DO_FCALL                                      0  $34     
         69        ASSIGN                                                   !2, $34
  300    70        INIT_STATIC_METHOD_CALL                                  'Foo', 'isset_static'
         71        FETCH_CONSTANT                                   ~36     'N'
         72        SEND_VAL                                                 ~36
         73        DO_FCALL                                      0          
  301    74        INIT_FCALL                                               'end_test'
         75        SEND_VAR                                                 !2
         76        SEND_VAL                                                 'isset%28self%3A%3A%24x%29'
         77        SEND_VAR                                                 !3
         78        DO_FCALL                                      0  $38     
         79        ASSIGN                                                   !2, $38
  302    80        INIT_STATIC_METHOD_CALL                                  'Foo', 'empty_static'
         81        FETCH_CONSTANT                                   ~40     'N'
         82        SEND_VAL                                                 ~40
         83        DO_FCALL                                      0          
  303    84        INIT_FCALL                                               'end_test'
         85        SEND_VAR                                                 !2
         86        SEND_VAL                                                 'empty%28self%3A%3A%24x%29'
         87        SEND_VAR                                                 !3
         88        DO_FCALL                                      0  $42     
         89        ASSIGN                                                   !2, $42
  304    90        INIT_FCALL                                               'read_static'
         91        FETCH_CONSTANT                                   ~44     'N'
         92        SEND_VAL                                                 ~44
         93        DO_FCALL                                      0          
  305    94        INIT_FCALL                                               'end_test'
         95        SEND_VAR                                                 !2
         96        SEND_VAL                                                 '%24x+%3D+Foo%3A%3A%24x'
         97        SEND_VAR                                                 !3
         98        DO_FCALL                                      0  $46     
         99        ASSIGN                                                   !2, $46
  306   100        INIT_FCALL                                               'write_static'
        101        FETCH_CONSTANT                                   ~48     'N'
        102        SEND_VAL                                                 ~48
        103        DO_FCALL                                      0          
  307   104        INIT_FCALL                                               'end_test'
        105        SEND_VAR                                                 !2
        106        SEND_VAL                                                 'Foo%3A%3A%24x+%3D+0'
        107        SEND_VAR                                                 !3
        108        DO_FCALL                                      0  $50     
        109        ASSIGN                                                   !2, $50
  308   110        INIT_FCALL                                               'isset_static'
        111        FETCH_CONSTANT                                   ~52     'N'
        112        SEND_VAL                                                 ~52
        113        DO_FCALL                                      0          
  309   114        INIT_FCALL                                               'end_test'
        115        SEND_VAR                                                 !2
        116        SEND_VAL                                                 'isset%28Foo%3A%3A%24x%29'
        117        SEND_VAR                                                 !3
        118        DO_FCALL                                      0  $54     
        119        ASSIGN                                                   !2, $54
  310   120        INIT_FCALL                                               'empty_static'
        121        FETCH_CONSTANT                                   ~56     'N'
        122        SEND_VAL                                                 ~56
        123        DO_FCALL                                      0          
  311   124        INIT_FCALL                                               'end_test'
        125        SEND_VAR                                                 !2
        126        SEND_VAL                                                 'empty%28Foo%3A%3A%24x%29'
        127        SEND_VAR                                                 !3
        128        DO_FCALL                                      0  $58     
        129        ASSIGN                                                   !2, $58
  312   130        INIT_STATIC_METHOD_CALL                                  'Foo', 'call_static'
        131        FETCH_CONSTANT                                   ~60     'N'
        132        SEND_VAL                                                 ~60
        133        DO_FCALL                                      0          
  313   134        INIT_FCALL                                               'end_test'
        135        SEND_VAR                                                 !2
        136        SEND_VAL                                                 'self%3A%3Af%28%29'
        137        SEND_VAR                                                 !3
        138        DO_FCALL                                      0  $62     
        139        ASSIGN                                                   !2, $62
  314   140        INIT_FCALL                                               'call_static'
        141        FETCH_CONSTANT                                   ~64     'N'
        142        SEND_VAL                                                 ~64
        143        DO_FCALL                                      0          
  315   144        INIT_FCALL                                               'end_test'
        145        SEND_VAR                                                 !2
        146        SEND_VAL                                                 'Foo%3A%3Af%28%29'
        147        SEND_VAR                                                 !3
        148        DO_FCALL                                      0  $66     
        149        ASSIGN                                                   !2, $66
  316   150        NEW                                              $68     'Foo'
        151        DO_FCALL                                      0          
        152        ASSIGN                                                   !5, $68
  317   153        INIT_METHOD_CALL                                         !5, 'read_prop'
        154        FETCH_CONSTANT                                   ~71     'N'
        155        SEND_VAL_EX                                              ~71
        156        DO_FCALL                                      0          
  318   157        INIT_FCALL                                               'end_test'
        158        SEND_VAR                                                 !2
        159        SEND_VAL                                                 '%24x+%3D+%24this-%3Ex'
        160        SEND_VAR                                                 !3
        161        DO_FCALL                                      0  $73     
        162        ASSIGN                                                   !2, $73
  319   163        INIT_METHOD_CALL                                         !5, 'write_prop'
        164        FETCH_CONSTANT                                   ~75     'N'
        165        SEND_VAL_EX                                              ~75
        166        DO_FCALL                                      0          
  320   167        INIT_FCALL                                               'end_test'
        168        SEND_VAR                                                 !2
        169        SEND_VAL                                                 '%24this-%3Ex+%3D+0'
        170        SEND_VAR                                                 !3
        171        DO_FCALL                                      0  $77     
        172        ASSIGN                                                   !2, $77
  321   173        INIT_METHOD_CALL                                         !5, 'assign_add_prop'
        174        FETCH_CONSTANT                                   ~79     'N'
        175        SEND_VAL_EX                                              ~79
        176        DO_FCALL                                      0          
  322   177        INIT_FCALL                                               'end_test'
        178        SEND_VAR                                                 !2
        179        SEND_VAL                                                 '%24this-%3Ex+%2B%3D+2'
        180        SEND_VAR                                                 !3
        181        DO_FCALL                                      0  $81     
        182        ASSIGN                                                   !2, $81
  323   183        INIT_METHOD_CALL                                         !5, 'pre_inc_prop'
        184        FETCH_CONSTANT                                   ~83     'N'
        185        SEND_VAL_EX                                              ~83
        186        DO_FCALL                                      0          
  324   187        INIT_FCALL                                               'end_test'
        188        SEND_VAR                                                 !2
        189        SEND_VAL                                                 '%2B%2B%24this-%3Ex'
        190        SEND_VAR                                                 !3
        191        DO_FCALL                                      0  $85     
        192        ASSIGN                                                   !2, $85
  325   193        INIT_METHOD_CALL                                         !5, 'pre_dec_prop'
        194        FETCH_CONSTANT                                   ~87     'N'
        195        SEND_VAL_EX                                              ~87
        196        DO_FCALL                                      0          
  326   197        INIT_FCALL                                               'end_test'
        198        SEND_VAR                                                 !2
        199        SEND_VAL                                                 '--%24this-%3Ex'
        200        SEND_VAR                                                 !3
        201        DO_FCALL                                      0  $89     
        202        ASSIGN                                                   !2, $89
  327   203        INIT_METHOD_CALL                                         !5, 'post_inc_prop'
        204        FETCH_CONSTANT                                   ~91     'N'
        205        SEND_VAL_EX                                              ~91
        206        DO_FCALL                                      0          
  328   207        INIT_FCALL                                               'end_test'
        208        SEND_VAR                                                 !2
        209        SEND_VAL                                                 '%24this-%3Ex%2B%2B'
        210        SEND_VAR                                                 !3
        211        DO_FCALL                                      0  $93     
        212        ASSIGN                                                   !2, $93
  329   213        INIT_METHOD_CALL                                         !5, 'post_dec_prop'
        214        FETCH_CONSTANT                                   ~95     'N'
        215        SEND_VAL_EX                                              ~95
        216        DO_FCALL                                      0          
  330   217        INIT_FCALL                                               'end_test'
        218        SEND_VAR                                                 !2
        219        SEND_VAL                                                 '%24this-%3Ex--'
        220        SEND_VAR                                                 !3
        221        DO_FCALL                                      0  $97     
        222        ASSIGN                                                   !2, $97
  331   223        INIT_METHOD_CALL                                         !5, 'isset_prop'
        224        FETCH_CONSTANT                                   ~99     'N'
        225        SEND_VAL_EX                                              ~99
        226        DO_FCALL                                      0          
  332   227        INIT_FCALL                                               'end_test'
        228        SEND_VAR                                                 !2
        229        SEND_VAL                                                 'isset%28%24this-%3Ex%29'
        230        SEND_VAR                                                 !3
        231        DO_FCALL                                      0  $101    
        232        ASSIGN                                                   !2, $101
  333   233        INIT_METHOD_CALL                                         !5, 'empty_prop'
        234        FETCH_CONSTANT                                   ~103    'N'
        235        SEND_VAL_EX                                              ~103
        236        DO_FCALL                                      0          
  334   237        INIT_FCALL                                               'end_test'
        238        SEND_VAR                                                 !2
        239        SEND_VAL                                                 'empty%28%24this-%3Ex%29'
        240        SEND_VAR                                                 !3
        241        DO_FCALL                                      0  $105    
        242        ASSIGN                                                   !2, $105
  335   243        INIT_METHOD_CALL                                         !5, 'call'
        244        FETCH_CONSTANT                                   ~107    'N'
        245        SEND_VAL_EX                                              ~107
        246        DO_FCALL                                      0          
  336   247        INIT_FCALL                                               'end_test'
        248        SEND_VAR                                                 !2
        249        SEND_VAL                                                 '%24this-%3Ef%28%29'
        250        SEND_VAR                                                 !3
        251        DO_FCALL                                      0  $109    
        252        ASSIGN                                                   !2, $109
  337   253        INIT_METHOD_CALL                                         !5, 'read_const'
        254        FETCH_CONSTANT                                   ~111    'N'
        255        SEND_VAL_EX                                              ~111
        256        DO_FCALL                                      0          
  338   257        INIT_FCALL                                               'end_test'
        258        SEND_VAR                                                 !2
        259        SEND_VAL                                                 '%24x+%3D+Foo%3A%3ATEST'
        260        SEND_VAR                                                 !3
        261        DO_FCALL                                      0  $113    
        262        ASSIGN                                                   !2, $113
  339   263        INIT_FCALL                                               'create_object'
        264        FETCH_CONSTANT                                   ~115    'N'
        265        SEND_VAL                                                 ~115
        266        DO_FCALL                                      0          
  340   267        INIT_FCALL                                               'end_test'
        268        SEND_VAR                                                 !2
        269        SEND_VAL                                                 'new+Foo%28%29'
        270        SEND_VAR                                                 !3
        271        DO_FCALL                                      0  $117    
        272        ASSIGN                                                   !2, $117
  341   273        INIT_FCALL                                               'read_const'
        274        FETCH_CONSTANT                                   ~119    'N'
        275        SEND_VAL                                                 ~119
        276        DO_FCALL                                      0          
  342   277        INIT_FCALL                                               'end_test'
        278        SEND_VAR                                                 !2
        279        SEND_VAL                                                 '%24x+%3D+TEST'
        280        SEND_VAR                                                 !3
        281        DO_FCALL                                      0  $121    
        282        ASSIGN                                                   !2, $121
  343   283        INIT_FCALL                                               'read_auto_global'
        284        FETCH_CONSTANT                                   ~123    'N'
        285        SEND_VAL                                                 ~123
        286        DO_FCALL                                      0          
  344   287        INIT_FCALL                                               'end_test'
        288        SEND_VAR                                                 !2
        289        SEND_VAL                                                 '%24x+%3D+%24_GET'
        290        SEND_VAR                                                 !3
        291        DO_FCALL                                      0  $125    
        292        ASSIGN                                                   !2, $125
  345   293        INIT_FCALL                                               'read_global_var'
        294        FETCH_CONSTANT                                   ~127    'N'
        295        SEND_VAL                                                 ~127
        296        DO_FCALL                                      0          
  346   297        INIT_FCALL                                               'end_test'
        298        SEND_VAR                                                 !2
        299        SEND_VAL                                                 '%24x+%3D+%24GLOBALS%5B%27v%27%5D'
        300        SEND_VAR                                                 !3
        301        DO_FCALL                                      0  $129    
        302        ASSIGN                                                   !2, $129
  347   303        INIT_FCALL                                               'read_hash'
        304        FETCH_CONSTANT                                   ~131    'N'
        305        SEND_VAL                                                 ~131
        306        DO_FCALL                                      0          
  348   307        INIT_FCALL                                               'end_test'
        308        SEND_VAR                                                 !2
        309        SEND_VAL                                                 '%24x+%3D+%24hash%5B%27v%27%5D'
        310        SEND_VAR                                                 !3
        311        DO_FCALL                                      0  $133    
        312        ASSIGN                                                   !2, $133
  349   313        INIT_FCALL                                               'read_str_offset'
        314        FETCH_CONSTANT                                   ~135    'N'
        315        SEND_VAL                                                 ~135
        316        DO_FCALL                                      0          
  350   317        INIT_FCALL                                               'end_test'
        318        SEND_VAR                                                 !2
        319        SEND_VAL                                                 '%24x+%3D+%24str%5B0%5D'
        320        SEND_VAR                                                 !3
        321        DO_FCALL                                      0  $137    
        322        ASSIGN                                                   !2, $137
  351   323        INIT_FCALL                                               'issetor'
        324        FETCH_CONSTANT                                   ~139    'N'
        325        SEND_VAL                                                 ~139
        326        DO_FCALL                                      0          
  352   327        INIT_FCALL                                               'end_test'
        328        SEND_VAR                                                 !2
        329        SEND_VAL                                                 '%24x+%3D+%24a+%3F%3A+null'
        330        SEND_VAR                                                 !3
        331        DO_FCALL                                      0  $141    
        332        ASSIGN                                                   !2, $141
  353   333        INIT_FCALL                                               'issetor2'
        334        FETCH_CONSTANT                                   ~143    'N'
        335        SEND_VAL                                                 ~143
        336        DO_FCALL                                      0          
  354   337        INIT_FCALL                                               'end_test'
        338        SEND_VAR                                                 !2
        339        SEND_VAL                                                 '%24x+%3D+%24f+%3F%3A+tmp'
        340        SEND_VAR                                                 !3
        341        DO_FCALL                                      0  $145    
        342        ASSIGN                                                   !2, $145
  355   343        INIT_FCALL                                               'ternary'
        344        FETCH_CONSTANT                                   ~147    'N'
        345        SEND_VAL                                                 ~147
        346        DO_FCALL                                      0          
  356   347        INIT_FCALL                                               'end_test'
        348        SEND_VAR                                                 !2
        349        SEND_VAL                                                 '%24x+%3D+%24f+%3F+%24f+%3A+%24a'
        350        SEND_VAR                                                 !3
        351        DO_FCALL                                      0  $149    
        352        ASSIGN                                                   !2, $149
  357   353        INIT_FCALL                                               'ternary2'
        354        FETCH_CONSTANT                                   ~151    'N'
        355        SEND_VAL                                                 ~151
        356        DO_FCALL                                      0          
  358   357        INIT_FCALL                                               'end_test'
        358        SEND_VAR                                                 !2
        359        SEND_VAL                                                 '%24x+%3D+%24f+%3F+%24f+%3A+tmp'
        360        SEND_VAR                                                 !3
        361        DO_FCALL                                      0  $153    
        362        ASSIGN                                                   !2, $153
  360   363        INIT_FCALL                                               'total'
        364        SEND_VAR                                                 !1
        365        SEND_VAL                                                 'Total'
        366        DO_FCALL                                      0          
        367      > RETURN                                                   1

Function hallo:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/P9Mg1
function name:  hallo
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E > > RETURN                                                   null

End of function hallo

Function simpleucall:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/P9Mg1
function name:  simpleucall
number of ops:  9
compiled vars:  !0 = $n, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   RECV                                             !0      
    8     1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
    9     3    >   INIT_FCALL                                               'hallo'
          4        DO_FCALL                                      0          
    8     5        PRE_INC                      

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
175.36 ms | 1431 KiB | 72 Q