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)) { // Assign the object to the static variable $obj = new stdclass; } $obj->property++; return $obj; } $obj1 = get_instance_ref(); $still_obj1 = get_instance_ref(); echo "\n"; $obj2 = get_instance_noref(); $still_obj2 = get_instance_noref();
Output for 7.0.0 - 7.0.33, 7.1.0 - 7.1.28, 7.2.0 - 7.2.18, 7.3.0 - 7.3.5
Parse error: syntax error, unexpected 'new' (T_NEW) in /in/jFCdv on line 10
Process exited with code 255.
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.40
Deprecated: Assigning the return value of new by reference is deprecated in /in/jFCdv on line 10 Static object: NULL Notice: Undefined property: stdClass::$property in /in/jFCdv on line 12 Static object: NULL Notice: Undefined property: stdClass::$property in /in/jFCdv on line 12 Static object: NULL Notice: Undefined property: stdClass::$property in /in/jFCdv on line 25 Static object: object(stdClass)#3 (1) { ["property"]=> int(1) }

preferences:
240.34 ms | 1396 KiB | 175 Q