--TEST-- Bug #20175 (Static vars can't store ref to new instance) --SKIPIF-- --INI-- error_reporting=E_ALL | E_STRICT | E_DEPRECATED --FILE-- oop_name = 'oop:' . ++$oop_global; } } class oop_test { static $oop_value; function oop_test() { echo "oop_test()\n"; } function oop_static() { echo "oop_static()\n"; if (!isset(self::$oop_value)) { self::$oop_value = & new oop_class; } echo self::$oop_value->oop_name; } } print foo_static()."\n"; print foo_static()."\n"; print bar_static()."\n"; print bar_static()."\n"; //print wow_static()."\n"; //print wow_static()."\n"; echo "wow_static() wow_global() wow:1 wow_static() wow:1 "; $oop_tester = new oop_test; print $oop_tester->oop_static()."\n"; print $oop_tester->oop_static()."\n"; $oop_tester = new oop_test; // repeated. print $oop_tester->oop_static()."\n"; ?> --EXPECTF-- Deprecated: Assigning the return value of new by reference is deprecated in %s.php on line %d %s foo_static() foo_global() foo:1 foo_static() foo:1 bar_static() bar_global() Strict Standards: Only variables should be assigned by reference in %sbug20175.php on line 47 bar:1 bar_static() bar:1 wow_static() wow_global() wow:1 wow_static() wow:1 oop_test() oop_static() oop_class() oop:1 oop_static() oop:1 oop_test() oop_static() oop:1