Heim >Backend-Entwicklung >PHP-Tutorial >Nutzungsanalyse der benutzerdefinierten PHP-Serialisierungsschnittstelle Serializable

Nutzungsanalyse der benutzerdefinierten PHP-Serialisierungsschnittstelle Serializable

不言
不言Original
2018-06-19 11:10:092022Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung der benutzerdefinierten PHP-Serialisierungsschnittstelle Serializable vor und analysiert das Konzept, die Funktion, die Definition und die Verwendung der serialisierbaren benutzerdefinierten Serialisierungsschnittstelle in Form von Beispielen

Das Beispiel in diesem Artikel beschreibt die Verwendung der benutzerdefinierten Serialisierungsschnittstelle Serializable von PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

PHP Serializable ist eine benutzerdefinierte Serialisierungsschnittstelle . Klassen, die diese Schnittstelle implementieren, unterstützen __sleep() und __wakeup() nicht mehr. Die Serialisierungsmethode wird automatisch aufgerufen, wenn eine Instanz der Klasse serialisiert wird, und __destruct() wird nicht aufgerufen oder hat andere Auswirkungen. Wenn eine Instanz einer Klasse deserialisiert wird, wird die Methode unserialize() aufgerufen und __construct() nicht ausgeführt. Die Schnittstellenzusammenfassung lautet wie folgt:

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

Beispielbeschreibung:

<?php
/**
 * 类自定义序列化相关操作
 *
 * @author 疯狂老司机
 */
class obj implements Serializable {
  private $data;
  private $step = 0;
  /*
   * 构造函数
   */
  public function __construct() {
    $this->data = "这是一段测试文字<br>";
    echo &#39;调用构造函数<br>&#39;;
  }
  public function serialize() {
    return serialize($this->data);
  }
  public function unserialize($data) {
    $this->step++;
    $this->data = unserialize($data);
  }
  /*
   * 析构函数
   */
  public function __destruct() {
    echo &#39;step:&#39;.$this->step.&#39; 调用析构函数<br>&#39;;
  }
  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对象的析构函数
?>

Die Ausgabe des obigen Beispiels:

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

Das Obige ist der gesamte Inhalt dieses Artikels Ich hoffe, dass es für alle hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Informationen dazu, wie PHP die Definitions- und Umkehrfunktion verknüpfter Listen implementiert

Über PHP objektorientiert Angelegenheiten Skriptmodus

Über die Datenübertragung in PHP CURL

Das obige ist der detaillierte Inhalt vonNutzungsanalyse der benutzerdefinierten PHP-Serialisierungsschnittstelle Serializable. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn