3v4l.org

run code in 300+ PHP versions simultaneously
<?php function &get_instance_ref() { static $obj; echo 'Static object: '; var_dump($obj); if (!isset($obj)) { // Assign a reference to the static variable $obj = &new stdclass; } $obj->property++; return $obj; } function &get_instance_noref() { static $obj; echo 'Static object: '; var_dump($obj); if (!isset($obj)) {class dcl {public $property=2;} // Assign the object to the static variable $obj = new dcl; } $obj->property++; return $obj; } $obj1 = get_instance_ref(); $still_obj1 = get_instance_ref(); echo "\n"; $obj2 = get_instance_noref(); $still_obj2 = get_instance_noref(); $still_obj3 = get_instance_noref(); ?>
Output for 5.5.0 - 5.5.36, 5.6.0 - 5.6.28
Deprecated: Assigning the return value of new by reference is deprecated in /in/FkLcI on line 10 Static object: NULL Notice: Undefined property: stdClass::$property in /in/FkLcI on line 12 Static object: NULL Notice: Undefined property: stdClass::$property in /in/FkLcI on line 12 Static object: NULL Static object: object(dcl)#3 (1) { ["property"]=> int(3) } Static object: object(dcl)#3 (1) { ["property"]=> int(4) }
Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45
Deprecated: Assigning the return value of new by reference is deprecated in /in/FkLcI on line 10 Static object: NULL Static object: NULL Static object: NULL Static object: object(dcl)#3 (1) { ["property"]=> int(3) } Static object: object(dcl)#3 (1) { ["property"]=> int(4) }
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Strict Standards: Assigning the return value of new by reference is deprecated in /in/FkLcI on line 10 Static object: NULL Static object: NULL Static object: NULL Static object: object(dcl)#3 (1) { ["property"]=> int(3) } Static object: object(dcl)#3 (1) { ["property"]=> int(4) }
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/FkLcI on line 24
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_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/FkLcI on line 24
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/FkLcI on line 24
Process exited with code 255.

preferences:
306.77 ms | 1395 KiB | 195 Q