PageRenderTime 42ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/hphp/test/slow/collection_classes/migration/unserialize-map.php

http://github.com/facebook/hiphop-php
PHP | 43 lines | 26 code | 10 blank | 7 comment | 9 complexity | fb20d0133c1e5ee087c2f65211480c77 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?hh
  2. // Test that we can handle unserialization of Maps with
  3. // and without namespaces.
  4. function main() {
  5. $m = Map {'a' => 1, 'b' => 2};
  6. // unserialize o serialize == id
  7. var_dump(unserialize(serialize($m)) == $m);
  8. // Namespaced Map.
  9. $nsm = "K:6:\"HH\\Map\":2:{s:1:\"a\";i:1;s:1:\"b\";i:2;}";
  10. var_dump(unserialize($nsm) == $m);
  11. // Nested namespaced Map.
  12. $nested = "K:6:\"HH\\Map\":2:{i:0;K:6:\"HH\\Map\":0:{}" .
  13. "i:1;K:6:\"HH\\Map\":1:{s:1:\"a\";i:2;}}";
  14. var_dump(unserialize($nested) == Map {0 => Map {}, 1 => Map {'a' => 2}});
  15. // O format
  16. $o1 = "O:3:\"Map\":0:{}";
  17. $o2 = "O:6:\"HH\\Map\":0:{}";
  18. var_dump(unserialize($o1) == Map {});
  19. var_dump(unserialize($o2) == Map {});
  20. // Unserialization is case-insensitive.
  21. $s1 = "K:6:\"hh\\map\":2:{s:1:\"a\";i:1;s:1:\"b\";i:2;}";
  22. $s2 = "K:6:\"HH\\MaP\":2:{s:1:\"a\";i:1;s:1:\"b\";i:2;}";
  23. $s3 = "K:3:\"map\":2:{s:1:\"a\";i:1;s:1:\"b\";i:2;}";
  24. $s4 = "K:3:\"Map\":2:{s:1:\"a\";i:1;s:1:\"b\";i:2;}";
  25. var_dump(unserialize($s1) == $m);
  26. var_dump(unserialize($s2) == $m);
  27. var_dump(unserialize($s3) == $m);
  28. var_dump(unserialize($s4) == $m);
  29. }
  30. <<__EntryPoint>>
  31. function main_unserialize_map() {
  32. main();
  33. }