unserialize_subclasses.phpt 630 B

12345678910111213141516171819202122232425262728
  1. --TEST--
  2. Test unserialize() with allowed_classes and subclasses
  3. --FILE--
  4. <?php
  5. class C {}
  6. class D extends C {}
  7. $c = serialize(new C);
  8. $d = serialize(new D);
  9. var_dump(unserialize($c, ["allowed_classes" => ["C"]]));
  10. var_dump(unserialize($c, ["allowed_classes" => ["D"]]));
  11. var_dump(unserialize($d, ["allowed_classes" => ["C"]]));
  12. var_dump(unserialize($d, ["allowed_classes" => ["D"]]));
  13. --EXPECTF--
  14. object(C)#%d (0) {
  15. }
  16. object(__PHP_Incomplete_Class)#%d (1) {
  17. ["__PHP_Incomplete_Class_Name"]=>
  18. string(1) "C"
  19. }
  20. object(__PHP_Incomplete_Class)#%d (1) {
  21. ["__PHP_Incomplete_Class_Name"]=>
  22. string(1) "D"
  23. }
  24. object(D)#%d (0) {
  25. }