• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP自定义序列化接口Serializable用法分析

    本文实例讲述了PHP自定义序列化接口Serializable用法。分享给大家供大家参考,具体如下:

    PHP Serializable是自定义序列化的接口实现此接口的类将不再支持__sleep()和__wakeup(),当类的实例被序列化时将自动调用serialize方法,并且不会调用 __destruct()或有其他影响。当类的实例被反序列化时,将调用unserialize()方法,并且不执行__construct()。接口摘要如下:

    Serializable {
      abstract public string serialize ( void )
      abstract public mixed unserialize ( string $serialized )
    }
    
    

    例子说明:

    ?php
    /**
     * 类自定义序列化相关操作
     *
     * @author 疯狂老司机
     */
    class obj implements Serializable {
      private $data;
      private $step = 0;
      /*
       * 构造函数
       */
      public function __construct() {
        $this->data = "这是一段测试文字br>";
        echo '调用构造函数br>';
      }
      public function serialize() {
        return serialize($this->data);
      }
      public function unserialize($data) {
        $this->step++;
        $this->data = unserialize($data);
      }
      /*
       * 析构函数
       */
      public function __destruct() {
        echo 'step:'.$this->step.' 调用析构函数br>';
      }
      public function getData(){
        return $this->data;
      }
    }
    $obj = new obj;// 调用obj::__construct
    $ser = serialize($obj);// 调用obj::serialize
    $newobj = unserialize($ser);// 调用obj::unserialize
    echo $newobj->getData();// 调用obj::getData
    // 执行结束,调用析构函数,先执行newobj对象的析构函数在执行obj对象的析构函数
    ?>
    
    

    以上例子输出:

    调用构造函数
    这是一段测试文字
    step:1 调用析构函数
    step:0 调用析构函数
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 如何使用Serializable接口来自定义PHP中类的序列化
    上一篇:PHP检测接口Traversable用法详解
    下一篇:PHP 的Opcache加速的使用方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP自定义序列化接口Serializable用法分析 PHP,自定义,序列化,接口,