Maison  >  Article  >  développement back-end  >  La différence entre les fonctions de sérialisation PHP

La différence entre les fonctions de sérialisation PHP

王林
王林original
2019-09-16 17:54:092045parcourir

La différence entre les fonctions de sérialisation PHP

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

Explication détaillée :

serialize() Renvoie une chaîne, cette chaîne contient des octets représentant la valeur Les flux peuvent être stocké n'importe où. Cela facilite le stockage ou la transmission des valeurs PHP sans perdre leur type et leur structure.

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

Explication détaillée :

unserialize() Opérez sur une seule variable sérialisée et reconvertissez-la en une valeur PHP. Si la chaîne passée n'est pas désérialisable, renvoie FALSE et produit un E_NOTICE.

$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) "上海市浦东新区"
//   }

Si vous souhaitez redéfinir la chaîne sérialisée en valeur PHP, vous pouvez utiliser unserialize(). Serialize() peut gérer n'importe quel type sauf la ressource. Vous pouvez même sérialiser() des tableaux contenant des références à eux-mêmes. Les références dans le tableau/objet que vous sérialisez() seront également stockées.

Lors de la sérialisation d'un objet, PHP tentera d'appeler la fonction membre de l'objet __sleep() avant l'action de séquence. Cela permet d'effectuer toutes les opérations de nettoyage avant que l'objet ne soit sérialisé. De même, lorsqu'un objet est restauré à l'aide d'unserialize(), la fonction membre __wakeup() sera appelée.

Le contenu ci-dessus est à titre de référence uniquement !

Tutoriel recommandé : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn