Heim  >  Artikel  >  Backend-Entwicklung  >  Kann PHP nicht serialisiert werden?

Kann PHP nicht serialisiert werden?

青灯夜游
青灯夜游Original
2022-04-26 17:13:251998Durchsuche

php kann eine Serialisierung erreichen. In PHP können Sie die Funktion serialize() verwenden, um die Serialisierung zu implementieren und den Wert in eine speicherbare Zeichenfolge umzuwandeln. Mit der Syntax „serialize (zu serialisierende Variable)“ können Sie zur Implementierung auch die Funktion unserialize() verwenden Deserialisierung und erneute Änderung des Strings auf seinen ursprünglichen Wert in PHP.

Kann PHP nicht serialisiert werden?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Die sogenannte Serialisierung ist der Prozess der Konvertierung einer Variablen im Speicher in eine Zeichenfolge, die gespeichert oder übertragen werden kann. Bei der Deserialisierung wird diese Zeichenfolge zum geeigneten Zeitpunkt für die Verwendung in die ursprüngliche Variable konvertiert. Durch die Kombination dieser beiden Prozesse können Datenspeicher- und Übertragungsvorgänge problemlos abgeschlossen werden, wodurch das Programm besser wartbar wird.

php kann auch Serialisierung implementieren.

In PHP können Sie die Funktion serialize() verwenden, um die Serialisierung zu implementieren und den Wert in eine speicherbare Zeichenfolge umzuwandeln. Sie können die Zeichenfolge auch mit der Funktion unserialize() wieder in den ursprünglichen Wert von PHP ändern die umgekehrte Serialisierung. Das Syntaxformat der Funktion

serialize() lautet wie folgt:

serialize(mixed $value)

wobei $value die zu serialisierende Variable ist. Die Funktion

serialize() kann jeden Typ außer Ressource verarbeiten. Beim Serialisieren eines Objekts ruft PHP vor der Sequenzaktion die Memberfunktion __sleep() des Objekts auf. Dadurch können alle Bereinigungsvorgänge durchgeführt werden, bevor das Objekt serialisiert wird. Wenn ein Objekt mit unserialize() deserialisiert wird, wird in ähnlicher Weise die Memberfunktion __wakeup() aufgerufen.

【Beispiel】Verwenden Sie die Funktion serialize(), um ein Objekt zu serialisieren.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
class WebSit{
    public $name;
    public $url;
    function __construct($name, $url){
        $this->name = $name;
        $this->url  = $url;
    }
}
$websit  = new WebSit(&#39;php中文网&#39;, &#39;https://www.php.cn/&#39;);
$ser_str = serialize($websit);
echo $ser_str;
?>

Kann PHP nicht serialisiert werden?

Erweiterte Kenntnisse: Deserialisierung

Nachdem Sie die Funktion serialize() zum Serialisieren des Objekts verwendet haben, können Sie die resultierende Zeichenfolge in einer Datei oder Datenbank speichern und diese Zeichenfolge dann mit der Funktion unserialize (wo erforderlich) deserialisieren . Das Syntaxformat der Funktion unserialize() lautet wie folgt:

unserialize(string $str)

Dabei ist $str die mit der Funktion serialize() serialisierte Zeichenfolge. Wenn die eingehende Zeichenfolge nicht deserialisiert werden kann, wird FALSE zurückgegeben und ein E_NOTICE generiert.

【Beispiel】Deserialisieren Sie die oben erhaltene Zeichenfolge.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
class WebSit{
    public $name;
    public $url;
    function __construct($name, $url){
        $this->name = $name;
        $this->url  = $url;
    }
}
$str = &#39;O:6:"WebSit":2:{s:4:"name";s:12:"php中文网";s:3:"url";s:19:"https://www.php.cn/";}&#39;;
$websit = unserialize($str);
var_dump($websit);
?>

Kann PHP nicht serialisiert werden?

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonKann PHP nicht serialisiert werden?. 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