php 序列化反serialize(),序列化unserialize()

所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。 序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。

序列化:serialize();

例:

 $a = array('dahei','huahua','a'); 
 $fruit = serialize($a); 
 echo $fruit;

   a:3:{i:0;s:5:"dahei";i:1;s:6:"huahau";i:2;s:1:"a";}

   a:表示整体的数据类型,这里是array;

   a:3中的3:表示数组元素的个数;

   i:表示int,整型;

   i:0:0表示数组元素的下标;

   s:表示string,即数组值的类型;

   s:5:5表示数组值的长度。

 注:serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

反序列化:unserialize();

列:

     $a = array('dahei','huahua','a');

     $fruit = serialize($a);

     var_dump(unserialize($fruit));

     array()(size=3)

     0=>string 'dahei' (length=5)

    1=>string 'huahua' (length=6)

    2=>string 'a' (length=1)

注:unserialize() 是对单一的已序列化的变量进行操作,将其转换回PHP 的值。

 

你可能感兴趣的:(php)