bug22231.phpt 676 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. --TEST--
  2. Bug #22231 (segfault when returning a global variable by reference)
  3. --INI--
  4. error_reporting=E_ALL
  5. --FILE--
  6. <?php
  7. class foo {
  8. public $fubar = 'fubar';
  9. }
  10. function &foo(){
  11. $obj = new foo();
  12. $GLOBALS['foo'] = &$obj;
  13. return $GLOBALS['foo'];
  14. }
  15. $bar = &foo();
  16. var_dump($bar);
  17. var_dump($bar->fubar);
  18. unset($bar);
  19. $bar = &foo();
  20. var_dump($bar->fubar);
  21. $foo = &foo();
  22. var_dump($foo);
  23. var_dump($foo->fubar);
  24. unset($foo);
  25. $foo = &foo();
  26. var_dump($foo->fubar);
  27. ?>
  28. --EXPECTF--
  29. object(foo)#%d (1) {
  30. ["fubar"]=>
  31. string(5) "fubar"
  32. }
  33. string(5) "fubar"
  34. string(5) "fubar"
  35. object(foo)#%d (1) {
  36. ["fubar"]=>
  37. string(5) "fubar"
  38. }
  39. string(5) "fubar"
  40. string(5) "fubar"