Heim  >  Artikel  >  Backend-Entwicklung  >  Benutzerdefinierte PHP-Serialisierungsschnittstelle Serialisierbare Nutzungsanalyse und Erklärung

Benutzerdefinierte PHP-Serialisierungsschnittstelle Serialisierbare Nutzungsanalyse und Erklärung

jacklove
jackloveOriginal
2018-07-04 17:46:001934Durchsuche

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 obige Beispielausgabe:

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

Artikel, die Sie interessieren könnten:

Verwendung PHPs Opcache-Beschleunigung Detaillierte Erklärung

Wie man Laravel verwendet, um eine Gravatar-Avatar-Adresse zu generieren

Detaillierte Diskussion von öffentlich und privat , geschützt, abstrakt in PHP Verwandte Verwendungen von Schlüsselwörtern wie

Das obige ist der detaillierte Inhalt vonBenutzerdefinierte PHP-Serialisierungsschnittstelle Serialisierbare Nutzungsanalyse und Erklärung. 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