您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

简简单单PHP对象序列化学习_PHP教程

2025/10/5 4:11:53发布25次查看
php还是比较常用的,于是我研究了一下php对象序列化,在这里拿出来和大家分享一下,希望对大家有用。php对象序列化也是一个比较普遍的功能,能够把一个对象进行串行化以后变成一个字符串,能够保存或者传输。我们先看一个例子:
classtestclass  {  var$a;  var$b;   functiontestclass()  {  $this->a=thisisa;  $this->b=thisisb;  }   functiongeta()  {  return$this->a;  }   functiongetb()  {  return$this->b;  }  }  $obj=newtestclass;  $str=serialize($obj);  echo$str;  
输出结果:
o:9:testclass:2:{s:1:a;s:9:thisisa;s:1:b;s:9:thisisb;} 
我们来分析一个对象串行化之后的字符串。
o:9:testclass:2:  {  s:1:a;s:9:thisisa;  s:1:b;s:9:thisisb;  } 
首先看对于对象本身的内容:o:9:testclass:2:o是说明这是一个对象类型(object),然后9是代表对象的名字查过浓度,2是代表该对象有几个属性。在看两个属性的内容:s:1:a;s:9:thisisa;其实跟数组的内容比较类似,第一项:s:1:a;是描述属性名称的,第二项s:9:thisisa;是描述属性值的。后面的属性类似。先说一种php对象序列化的应用,下面的内容是php手册上,没有更改原文。serialize()返回一个字符串,包含着可以储存于php的任何值的字节流表示。unserialize()可以用此字符串来重建原始的变量值。用序列化来保存对象可以保存对象中的所有变量。对象中的函数不会被保存,只有类的名称。要能够unserialize()一个对象,需要定义该对象的类。也就是,如果序列化了page1.php中类a的对象$a,将得到一个指向类a的字符串并包含有所有$a中变量的值。如果要在page2.php中将其解序列化,重建类a的对象$a,则page2.php中必须要出现类a的定义。这可以例如这样实现,将类a的定义放在一个包含文件中,并在page1.php和page2.php都包含此文件。
php //classa.inc:  classa  {  var$one=1;   functionshow_one()  {  echo$this->one;  }  }   //page1.php:  include(classa.inc);   $a=newa;  $s=serialize($a);  //将$s存放在某处使page2.php能够找到  $fp=fopen(store,w);  fputs($fp,$s);  fclose($fp);   //page2.php:  //为了正常解序列化需要这一行  include(classa.inc);   $s=implode(,@file(store));  $a=unserialize($s);   //现在可以用$a对象的show_one()函数了  $a->show_one();  ?> 
http://www.bkjia.com/phpjc/446493.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/446493.htmltecharticlephp还是比较常用的,于是我研究了一下php对象序列化,在这里拿出来和大家分享一下,希望对大家有用。php对象序列化也是一个比较普遍的...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product