Heim >Backend-Entwicklung >PHP-Problem >Was bedeutet PHP-Serialisierung?

Was bedeutet PHP-Serialisierung?

(*-*)浩
(*-*)浩Original
2019-09-12 13:11:084040Durchsuche

Serialisierung ist der Prozess der Konvertierung einer Variablen in eine Zeichenfolge, die gespeichert oder übertragen werden kann; Deserialisierung ist die Umwandlung dieser Zeichenfolge in die ursprüngliche Variable zum geeigneten Zeitpunkt. Durch die Kombination dieser beiden Prozesse können Daten einfach gespeichert und übertragen werden, wodurch das Programm leichter wartbar wird.

Was bedeutet PHP-Serialisierung?

Serialisierung und Deserialisierung in PHP können durch die Funktionen serialize() bzw. unserialize() erreicht werden.

string serialize ( mixed value )

serialize() gibt einen String zurück, der einen Bytestrom enthält, der einen Wert darstellt und an einem beliebigen Ort gespeichert werden kann. (Empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)

Dies ist vorteilhaft für das Speichern oder Übertragen von PHP-Werten, ohne deren Typ und Struktur zu verlieren.

Wenn Sie die serialisierte Zeichenfolge wieder in den PHP-Wert ändern möchten, können Sie unserialize() verwenden. serialize() kann jeden Typ außer Ressource verarbeiten. Sie können sogar Arrays serialisieren(), die Verweise auf sich selbst enthalten. Referenzen in dem Array/Objekt, das Sie serialisieren(), werden ebenfalls gespeichert.

Beim Serialisieren eines Objekts versucht PHP, die Memberfunktion __sleep() des Objekts vor der Sequenzaktion aufzurufen. Dadurch können alle Bereinigungsvorgänge durchgeführt werden, bevor das Objekt serialisiert wird. Wenn ein Objekt mit unserialize() wiederhergestellt wird, wird in ähnlicher Weise die Memberfunktion __wakeup() aufgerufen.

Hinweis: In PHP 3 werden Objekteigenschaften serialisiert, Methoden gehen jedoch verloren. PHP 4 überwindet diese Einschränkung und kann sowohl Eigenschaften als auch Methoden speichern. Weitere Informationen finden Sie im Abschnitt „Serialisierte Objekte“ in „Klassen und Objekte“.

serialize() Beispiel

<?php
// $session_data 是包含了当前用户 session 信息的多维数组。
// 我们使用 serialize() 在请求结束之前将其存储到数据库中。

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* 出错 */
}
}
?>

Das obige ist der detaillierte Inhalt vonWas bedeutet PHP-Serialisierung?. 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