019.phpt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. --TEST--
  2. serializing references test case using globals
  3. --EXTENSIONS--
  4. session
  5. --SKIPIF--
  6. <?php include('skipif.inc'); ?>
  7. --INI--
  8. session.use_cookies=0
  9. session.use_strict_mode=0
  10. session.cache_limiter=
  11. session.serialize_handler=php
  12. session.save_handler=files
  13. --FILE--
  14. <?php
  15. error_reporting(E_ALL);
  16. class TFoo {
  17. public $c;
  18. function __construct($c) {
  19. $this->c = $c;
  20. }
  21. function inc() {
  22. $this->c++;
  23. }
  24. }
  25. session_id("test019");
  26. session_start();
  27. $_SESSION["o1"] = new TFoo(42);
  28. $_SESSION["o2"] =& $_SESSION["o1"];
  29. session_write_close();
  30. unset($_SESSION["o1"]);
  31. unset($_SESSION["o2"]);
  32. session_start();
  33. var_dump($_SESSION);
  34. $_SESSION["o1"]->inc();
  35. $_SESSION["o2"]->inc();
  36. var_dump($_SESSION);
  37. session_destroy();
  38. ?>
  39. --EXPECTF--
  40. array(2) {
  41. ["o1"]=>
  42. &object(TFoo)#%d (1) {
  43. ["c"]=>
  44. int(42)
  45. }
  46. ["o2"]=>
  47. &object(TFoo)#%d (1) {
  48. ["c"]=>
  49. int(42)
  50. }
  51. }
  52. array(2) {
  53. ["o1"]=>
  54. &object(TFoo)#%d (1) {
  55. ["c"]=>
  56. int(44)
  57. }
  58. ["o2"]=>
  59. &object(TFoo)#%d (1) {
  60. ["c"]=>
  61. int(44)
  62. }
  63. }