003.phpt 828 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. session object deserialization
  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. class foo {
  15. public $bar = "ok";
  16. function method() { $this->yes++; }
  17. }
  18. session_id("abtest");
  19. session_start();
  20. session_decode('baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:1;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:1;}}');
  21. $_SESSION["baz"]->method();
  22. $_SESSION["arr"][3]->method();
  23. var_dump($_SESSION["baz"]);
  24. var_dump($_SESSION["arr"]);
  25. session_destroy();
  26. --EXPECT--
  27. object(foo)#1 (2) {
  28. ["bar"]=>
  29. string(2) "ok"
  30. ["yes"]=>
  31. int(2)
  32. }
  33. array(1) {
  34. [3]=>
  35. object(foo)#2 (2) {
  36. ["bar"]=>
  37. string(2) "ok"
  38. ["yes"]=>
  39. int(2)
  40. }
  41. }