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;} function &get_instance_ref() // 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.4.0 - 5.4.19
Deprecated: Assigning the return value of new by reference is deprecated in /in/FrTMn on line 10 Parse error: syntax error, unexpected '$obj' (T_VARIABLE), expecting '{' in /in/FrTMn on line 28
Process exited with code 255.
Output for 5.3.0 - 5.3.27
Deprecated: Assigning the return value of new by reference is deprecated in /in/FrTMn on line 10 Parse error: syntax error, unexpected T_VARIABLE, expecting '{' in /in/FrTMn on line 28
Process exited with code 255.

preferences:
186.34 ms | 1395 KiB | 55 Q