006.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. correct instantiation of references between variables in sessions
  3. --SKIPIF--
  4. <?php include('skipif.inc'); ?>
  5. --INI--
  6. session.use_cookies=0
  7. session.use_strict_mode=0
  8. session.cache_limiter=
  9. session.serialize_handler=php
  10. session.save_handler=files
  11. --FILE--
  12. <?php
  13. error_reporting(E_ALL);
  14. session_id("abtest");
  15. session_start();
  16. class a {
  17. public $test = "hallo";
  18. }
  19. class b {
  20. public $a;
  21. function b(&$a) {
  22. $this->a = &$a;
  23. }
  24. }
  25. $a = new a();
  26. $b = new b($a);
  27. echo "original values:\n";
  28. var_dump($a,$b);
  29. $_SESSION["a"] = $a;
  30. $_SESSION["b"] = $b;
  31. session_write_close();
  32. unset($_SESSION["a"], $_SESSION["b"]);
  33. session_start();
  34. echo "values after session:\n";
  35. var_dump($a,$b);
  36. ?>
  37. --EXPECTF--
  38. original values:
  39. object(a)#%d (1) {
  40. ["test"]=>
  41. string(5) "hallo"
  42. }
  43. object(b)#%d (1) {
  44. ["a"]=>
  45. &object(a)#%d (1) {
  46. ["test"]=>
  47. string(5) "hallo"
  48. }
  49. }
  50. values after session:
  51. object(a)#%d (1) {
  52. ["test"]=>
  53. string(5) "hallo"
  54. }
  55. object(b)#%d (1) {
  56. ["a"]=>
  57. &object(a)#%d (1) {
  58. ["test"]=>
  59. string(5) "hallo"
  60. }
  61. }