PHP Serializable 介面


簡介

PHP 庫中存在 Serializable 介面,用於構建提供自定義序列化的類。PHP 的 serialize() 函式能夠將大多數值序列化為一個可儲存的表示。但是,無法序列化使用者自定義類的物件。此介面使得這種情況成為可能。

語法

Serializable {
   /* Methods */
   abstract public serialize ( void ) : string
   abstract public unserialize ( string $serialized ) : void
}

方法

Serializable::serialize — 物件的字串表示

Serializable::unserialize — 用序列化的字串表示構建物件

內建的 serialze() 函式生成一個值的儲存表示

serialize ( mixed $value ) : string

unserialize() 函式從一個儲存的表示中建立一個 PHP 值

unserialize ( string $str [, array $options ] ) : mixed

Serializable 示例

在以下示例中,一個字串變數被用作 myclass 的私有屬性。當內建的 serialize() 函式使用這個類的物件作為引數時,serialize() 方法會自動被呼叫。類似地,unserialize() 函式會用字串私有屬性重建物件。

示例

 實際演示

<?php
class myclass implements Serializable {
   private $arr;
   public function __construct() {
      $this->arr = "TutorialsPoint India (p) Ltd";
   }
   public function serialize() {
      echo "Serializing object..
";       return serialize($this->arr);    }    public function unserialize($data) {       echo "Unserializing object..
";       $this->arr = unserialize($data);    }    public function getdata() {       return $this->arr;    } } $obj = new myclass; $serobj = serialize($obj); var_dump ($serobj); $obj1 = unserialize($serobj); var_dump($obj1->getdata()); ?>

輸出

上述程式顯示以下輸出

Serializing object..
string(55) "C:7:"myclass":36:{s:28:"TutorialsPoint India (p) Ltd";}"
Unserializing object..
string(28) "TutorialsPoint India (p) Ltd"

更新於: 2020-09-21

531 次瀏覽

啟動你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.