3v4l.org

run code in 300+ PHP versions simultaneously
<?php if(version_compare(PHP_VERSION, '5.2.9') > 0) eval(' class RefCallBugTester { public $bad = true; function __call( $name, $args ) { $old = error_reporting( E_ALL & ~E_WARNING ); call_user_func_array( array( $this, \'checkForBrokenRef\' ), $args ); error_reporting( $old ); } function checkForBrokenRef( &$var ) { if( $var ) $this->bad = false; } function execute() { $var = true; call_user_func_array( array( $this, \'foo\' ), array( &$var ) ); } } $refCallBugTester = new RefCallBugTester(); $refCallBugTester->execute(); if($refCallBugTester->bad) return $error_message; return null; ');
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/blHfZ
function name:  (null)
number of ops:  8
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'version_compare'
          1        SEND_VAL                                                 '8.0.0'
          2        SEND_VAL                                                 '5.2.9'
          3        DO_ICALL                                         $0      
          4        IS_SMALLER                                               0, $0
          5      > JMPZ                                                     ~1, ->7
    3     6    >   INCLUDE_OR_EVAL                                          '%0A%09class+RefCallBugTester%0A%09%7B%0A%09%09public+%24bad+%3D+true%3B%0A%0A%09%09function+__call%28+%24name%2C+%24args+%29%0A%09%09%7B%0A%09%09%09%24old+%3D+error_reporting%28+E_ALL+%26+%7EE_WARNING+%29%3B%0A%09%09%09call_user_func_array%28+array%28+%24this%2C+%27checkForBrokenRef%27+%29%2C+%24args+%29%3B%0A%09%09%09error_reporting%28+%24old+%29%3B%0A%09%09%7D%0A%09%09function+checkForBrokenRef%28+%26%24var+%29%0A%09%09%7B%0A%09%09%09if%28+%24var+%29%0A%09%09%09%09%24this-%3Ebad+%3D+false%3B%0A%09%09%7D%0A%09%09function+execute%28%29%0A%09%09%7B%0A%09%09%09%24var+%3D+true%3B%0A%09%09%09call_user_func_array%28+array%28+%24this%2C+%27foo%27+%29%2C+array%28+%26%24var+%29+%29%3B%0A%09%09%7D%0A%09%7D%0A%09%24refCallBugTester+%3D+new+RefCallBugTester%28%29%3B%0A%09%24refCallBugTester-%3Eexecute%28%29%3B%0A%0A%09if%28%24refCallBugTester-%3Ebad%29%0A%09%09return+%24error_message%3B%0A%0A%09return+null%3B%0A', EVAL
   32     7    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
177.87 ms | 1399 KiB | 15 Q