unserialize_classes.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. --TEST--
  2. Test unserialize() with second parameter
  3. --FILE--
  4. <?php
  5. class foo {
  6. public $x = "bar";
  7. }
  8. $z = array(new foo(), 2, "3");
  9. $s = serialize($z);
  10. var_dump(unserialize($s));
  11. var_dump(unserialize($s, ["allowed_classes" => false]));
  12. var_dump(unserialize($s, ["allowed_classes" => true]));
  13. var_dump(unserialize($s, ["allowed_classes" => ["bar"]]));
  14. var_dump(unserialize($s, ["allowed_classes" => ["FOO"]]));
  15. var_dump(unserialize($s, ["allowed_classes" => ["bar", "foO"]]));
  16. --EXPECTF--
  17. array(3) {
  18. [0]=>
  19. object(foo)#%d (1) {
  20. ["x"]=>
  21. string(3) "bar"
  22. }
  23. [1]=>
  24. int(2)
  25. [2]=>
  26. string(1) "3"
  27. }
  28. array(3) {
  29. [0]=>
  30. object(__PHP_Incomplete_Class)#%d (2) {
  31. ["__PHP_Incomplete_Class_Name"]=>
  32. string(3) "foo"
  33. ["x"]=>
  34. string(3) "bar"
  35. }
  36. [1]=>
  37. int(2)
  38. [2]=>
  39. string(1) "3"
  40. }
  41. array(3) {
  42. [0]=>
  43. object(foo)#%d (1) {
  44. ["x"]=>
  45. string(3) "bar"
  46. }
  47. [1]=>
  48. int(2)
  49. [2]=>
  50. string(1) "3"
  51. }
  52. array(3) {
  53. [0]=>
  54. object(__PHP_Incomplete_Class)#%d (2) {
  55. ["__PHP_Incomplete_Class_Name"]=>
  56. string(3) "foo"
  57. ["x"]=>
  58. string(3) "bar"
  59. }
  60. [1]=>
  61. int(2)
  62. [2]=>
  63. string(1) "3"
  64. }
  65. array(3) {
  66. [0]=>
  67. object(foo)#%d (1) {
  68. ["x"]=>
  69. string(3) "bar"
  70. }
  71. [1]=>
  72. int(2)
  73. [2]=>
  74. string(1) "3"
  75. }
  76. array(3) {
  77. [0]=>
  78. object(foo)#%d (1) {
  79. ["x"]=>
  80. string(3) "bar"
  81. }
  82. [1]=>
  83. int(2)
  84. [2]=>
  85. string(1) "3"
  86. }