この記事では、主に PHP カスタム シリアル化インターフェイス Serializable の使用方法を紹介し、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 の Opcache アクセラレーションの詳細な説明Laravel を使用して Gravatar アバター アドレスを生成する方法
パブリック、プライベートの詳細な説明、保護された、PHP での抽象 キーワードの関連した使用法
以上がPHP カスタム シリアル化インターフェイス シリアル化可能な使用法の分析と説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。