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

5年以前  |  阅读数:409 次  |  编程语言:PHP 

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

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


    // a complex array
    $myvar = array(
     'hello',
     42,
     array(1,'two'),
     'apple'
    );

    // convert to a string
    $string = serialize($myvar);

    echo $string;
    /* prints
    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";}
    */

    // you can reproduce the original variable
    $newvar = unserialize($string);

    print_r($newvar);
    /* prints
    Array
    (
      [0] => hello
      [1] => 42
      [2] => Array
        (
          [0] => 1
          [1] => two
        )

      [3] => apple
    )
    */

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

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

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


    // a complex array
    $myvar = array(
     'hello',
     42,
     array(1,'two'),
     'apple'
    );

    // convert to a string
    $string = json_encode($myvar);

    echo $string;
    /* prints
    ["hello",42,[1,"two"],"apple"]
    */

    // you can reproduce the original variable
    $newvar = json_decode($string);

    print_r($newvar);
    /* prints
    Array
    (
      [0] => hello
      [1] => 42
      [2] => Array
        (
          [0] => 1
          [1] => two
        )

      [3] => apple
    )
    */

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

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

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例