3v4l.org

run code in 300+ PHP versions simultaneously
<?php class foo { static $mem; static function setMem( &$v ) { self::$mem[ $v[0] ] = $v[1]; } static function readMem( &$v ) { $a = $v[3]; $v[2][$a] =& self::$mem[ $v[1] ]; } static function reset( &$v ) { reset( $v[0] ); } static function each( &$v ) { var_dump( $v ); $t = each( $v[0] ); self::$mem[ $v[1] ] = $t[1]; } static function show( &$v ) { echo $v[0]; } } $reset = array(null); $each = array(null, 'new'); $show = array(null); $arr = array( array('variable', array(1, 2, 3) ), array( 1=>'variable', 3=>0 ), array(), array( 1=>'variable', 3=>0 ), $each, array( 1=>'new', 3=>0 ),// 5 $show, ); $arr[1][2] =& $reset; $arr[2][0] =& $reset; $arr[3][2] =& $each; $arr[5][2] =& $show; $n = 0; foo::setMem( $arr[$n++] ); // 0 foo::readMem( $arr[$n++] ); // 1 foo::reset( $arr[$n++] ); // 2 foo::readMem( $arr[$n++] ); // 3 var_dump( $each ); foo::each( $arr[$n++] ); // 4 foo::readMem( $arr[$n++] ); // 5 foo::show( $arr[$n++] ); // 6
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
array(2) { [0]=> &array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1]=> string(3) "new" } array(2) { [0]=> NULL [1]=> string(3) "new" } Fatal error: Uncaught Error: Call to undefined function each() in /in/FWJna:21 Stack trace: #0 /in/FWJna(55): foo::each(Array) #1 {main} thrown in /in/FWJna on line 21
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 array(2) { [0]=> &array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1]=> string(3) "new" } array(2) { [0]=> NULL [1]=> string(3) "new" } Fatal error: Uncaught Error: Call to undefined function each() in /in/FWJna:21 Stack trace: #0 /in/FWJna(55): foo::each(Array) #1 {main} thrown in /in/FWJna on line 21
Process exited with code 255.
Output for 7.4.0 - 7.4.33
array(2) { [0]=> &array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1]=> string(3) "new" } array(2) { [0]=> NULL [1]=> string(3) "new" } Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/FWJna on line 21 Warning: Variable passed to each() is not an array or object in /in/FWJna on line 21 Notice: Trying to access array offset on value of type null in /in/FWJna on line 22
Output for 5.0.0 - 5.0.5, 5.1.1 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.3.32 - 7.3.33
array(2) { [0]=> &array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1]=> string(3) "new" } array(2) { [0]=> NULL [1]=> string(3) "new" } Warning: Variable passed to each() is not an array or object in /in/FWJna on line 21
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.31
array(2) { [0]=> &array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1]=> string(3) "new" } array(2) { [0]=> NULL [1]=> string(3) "new" } Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/FWJna on line 21 Warning: Variable passed to each() is not an array or object in /in/FWJna on line 21
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/FWJna on line 57
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/FWJna on line 4
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/FWJna on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/FWJna on line 4
Process exited with code 255.

preferences:
232.14 ms | 401 KiB | 328 Q