serialize.phpt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. GMP serialization and unserialization
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. var_dump($n = gmp_init(42));
  8. var_dump($s = serialize($n));
  9. var_dump(unserialize($s));
  10. $n = gmp_init(13);
  11. $n->foo = "bar";
  12. var_dump($s = serialize($n));
  13. var_dump(unserialize($s));
  14. var_dump(unserialize('C:3:"GMP":15:{s:2:"42";a:0:{}}'));
  15. try {
  16. unserialize('C:3:"GMP":0:{}');
  17. } catch (Exception $e) { var_dump($e->getMessage()); }
  18. try {
  19. unserialize('C:3:"GMP":9:{s:2:"42";}');
  20. } catch (Exception $e) { var_dump($e->getMessage()); }
  21. try {
  22. unserialize('O:3:"GMP":0:{}');
  23. } catch (Exception $e) { var_dump($e->getMessage()); }
  24. try {
  25. unserialize('O:3:"GMP":1:{i:0;i:0;}');
  26. } catch (Exception $e) { var_dump($e->getMessage()); }
  27. try {
  28. unserialize('O:3:"GMP":1:{i:0;s:0:"";}');
  29. } catch (Exception $e) { var_dump($e->getMessage()); }
  30. try {
  31. unserialize('O:3:"GMP":2:{i:0;s:1:"0";i:1;i:0;}');
  32. } catch (Exception $e) { var_dump($e->getMessage()); }
  33. ?>
  34. --EXPECTF--
  35. object(GMP)#%d (1) {
  36. ["num"]=>
  37. string(2) "42"
  38. }
  39. string(27) "O:3:"GMP":1:{i:0;s:2:"2a";}"
  40. object(GMP)#%d (1) {
  41. ["num"]=>
  42. string(2) "42"
  43. }
  44. string(56) "O:3:"GMP":2:{i:0;s:1:"d";i:1;a:1:{s:3:"foo";s:3:"bar";}}"
  45. object(GMP)#%d (2) {
  46. ["foo"]=>
  47. string(3) "bar"
  48. ["num"]=>
  49. string(2) "13"
  50. }
  51. object(GMP)#1 (1) {
  52. ["num"]=>
  53. string(2) "42"
  54. }
  55. string(28) "Could not unserialize number"
  56. string(32) "Could not unserialize properties"
  57. string(28) "Could not unserialize number"
  58. string(28) "Could not unserialize number"
  59. string(28) "Could not unserialize number"
  60. string(32) "Could not unserialize properties"