首页 > 开发 > PHP > 正文

php序列化函数serialize() 和 unserialize() 与原生函数对比

2024-05-04 23:34:57
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php序列化函数serialize() 和 unserialize() 与php原生序列化方法对比,有需要的小伙伴可以参考下。

php中有格式化字符串并转换成数组或对象的好方法,即序列化处理。

有两种序列化变量的方法。

以下示例,使用 serialize() 和 unserialize() 函数:

 

 
  1. // a complex array 
  2. $myvar = array
  3. 'hello'
  4. 42, 
  5. array(1,'two'), 
  6. 'apple' 
  7. ); 
  8.  
  9. // convert to a string 
  10. $string = serialize($myvar); 
  11.  
  12. echo $string
  13. /* prints 
  14. a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";} 
  15. */ 
  16.  
  17. // you can reproduce the original variable 
  18. $newvar = unserialize($string); 
  19.  
  20. print_r($newvar); 
  21. /* prints 
  22. Array 
  23. ( 
  24. [0] => hello 
  25. [1] => 42 
  26. [2] => Array 
  27. ( 
  28. [0] => 1 
  29. [1] => two 
  30. ) 
  31.  
  32. [3] => apple 
  33. ) 
  34. */ 

这是原生的 PHP 序列化方法。

然而,由于 JSON 近年来大受欢迎,PHP5.2 中已经加入了对 JSON 格式的支持。

现在你可以使用 json_encode() 和 json_decode() 函数:

 

 
  1. // a complex array 
  2. $myvar = array
  3. 'hello'
  4. 42, 
  5. array(1,'two'), 
  6. 'apple' 
  7. ); 
  8.  
  9. // convert to a string 
  10. $string = json_encode($myvar); 
  11.  
  12. echo $string
  13. /* prints 
  14. ["hello",42,[1,"two"],"apple"] 
  15. */ 
  16.  
  17. // you can reproduce the original variable 
  18. $newvar = json_decode($string); 
  19.  
  20. print_r($newvar); 
  21. /* prints 
  22. Array 
  23. ( 
  24. [0] => hello 
  25. [1] => 42 
  26. [2] => Array 
  27. ( 
  28. [0] => 1 
  29. [1] => two 
  30. ) 
  31.  
  32. [3] => apple 
  33. ) 
  34. */ 

这将更为行之有效,尤其与 JavaScript 等许多其他语言兼容。

注意:对于复杂的对象,某些信息可能会丢失。

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表