Heim >Backend-Entwicklung >PHP-Problem >Der Unterschied zwischen PHP-Serialisierungsfunktionen

Der Unterschied zwischen PHP-Serialisierungsfunktionen

王林
王林Original
2019-09-16 17:54:092101Durchsuche

Der Unterschied zwischen PHP-Serialisierungsfunktionen

serialize() //把变量和它们的值编码成文本形式,即产生一个可存储的值的表示

Detaillierte Erklärung:

serialize() Gibt einen String zurück, der Bytes enthält, die den Wert darstellen. Streams können gespeichert werden überall. Dies erleichtert das Speichern oder Übergeben von PHP-Werten, ohne dass Typ und Struktur verloren gehen.

unserialize() //恢复原先变量。

Detaillierte Erklärung:

unserialize() Mit einer einzelnen serialisierten Variablen arbeiten und diese zurück in einen PHP-Wert konvertieren. Wenn die übergebene Zeichenfolge nicht deserialisierbar ist, wird FALSE zurückgegeben und ein E_NOTICE erzeugt.

$arr=array();
$arr['name']='张三';
$arr['age']='22';
$arr['sex']='男';
$arr['phone']='123456789';
$arr['address']='上海市浦东新区';
var_dump($arr);

//输出:
//  array(5) { 
//  ["name"]=> string(6) "张三"
//  ["age"]=> string(2) "22"
//  ["sex"]=> string(3) "男"
//  ["phone"]=> string(9) "123456789"
//  ["address"]=> string(21) "上海市浦东新区"
//   }

//序列化:
$info=serialize($arr);
var_dump($info);

//输出:
//string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}"

   ////////////////////////说明/////////////////////////////////
//**a:5标志序列化为array包含5个键值对,s:4标志内容为字符串包含4个字符。**//


$zhangsan=unserialize($info);
var_dump($zhangsan);

//输出:
//  array(5) { 
//  ["name"]=> string(6) "张三"
//  ["age"]=> string(2) "22"
//  ["sex"]=> string(3) "男"
//  ["phone"]=> string(9) "123456789"
//  ["address"]=> string(21) "上海市浦东新区"
//   }

Wenn Sie die serialisierte Zeichenfolge wieder in einen 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.

Der obige Inhalt dient nur als Referenz!

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen PHP-Serialisierungsfunktionen. 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