自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡簡單單PHP對象序列化學(xué)習(xí)

開發(fā) 后端
PHP對象序列化是編程中常用的,serialize()返回一個字符串,包含著可以儲存于PHP的任何值的字節(jié)流表示,希望對大家有幫助。

PHP還是比較常用的,于是我研究了一下PHP對象序列化,在這里拿出來和大家分享一下,希望對大家有用。PHP對象序列化也是一個比較普遍的功能,能夠把一個對象進行串行化以后變成一個字符串,能夠保存或者傳輸。我們先看一個例子:

  1. classTestClass  
  2. {  
  3. var$a;  
  4. var$b;  
  5.  
  6. functionTestClass()  
  7. {  
  8. $this->a="Thisisa";  
  9. $this->b="Thisisb";  
  10. }  
  11.  
  12. functiongetA()  
  13. {  
  14. return$this->a;  
  15. }  
  16.  
  17. functiongetB()  
  18. {  
  19. return$this->b;  
  20. }  
  21. }  
  22. $obj=newTestClass;  
  23. $str=serialize($obj);  
  24. echo$str;  

輸出結(jié)果:

  1. O:9:"TestClass":2:{s:1:"a";s:9:"Thisisa";s:1:"b";s:9:"Thisisb";} 

我們來分析一個對象串行化之后的字符串。

  1. O:9:"TestClass":2:  
  2. {  
  3. s:1:"a";s:9:"Thisisa";  
  4. s:1:"b";s:9:"Thisisb";  

#T#首先看對于對象本身的內(nèi)容:O:9:"TestClass":2:O是說明這是一個對象類型(object),然后9是代表對象的名字查過濃度,2是代表該對象有幾個屬性。在看兩個屬性的內(nèi)容:s:1:"a";s:9:"Thisisa";其實跟數(shù)組的內(nèi)容比較類似,第一項:s:1:"a";是描述屬性名稱的,第二項s:9:"Thisisa";是描述屬性值的。后面的屬性類似。先說一種PHP對象序列化的應(yīng)用,下面的內(nèi)容是PHP手冊上,沒有更改原文。serialize()返回一個字符串,包含著可以儲存于PHP的任何值的字節(jié)流表示。unserialize()可以用此字符串來重建原始的變量值。用序列化來保存對象可以保存對象中的所有變量。對象中的函數(shù)不會被保存,只有類的名稱。

要能夠unserialize()一個對象,需要定義該對象的類。也就是,如果序列化了page1.php中類A的對象$a,將得到一個指向類A的字符串并包含有所有$a中變量的值。如果要在page2.php中將其解序列化,重建類A的對象$a,則page2.php中必須要出現(xiàn)類A的定義。這可以例如這樣實現(xiàn),將類A的定義放在一個包含文件中,并在page1.php和page2.php都包含此文件。

  1. <?php 
  2. //classa.inc:  
  3. classA  
  4. {  
  5. var$one=1;  
  6.  
  7. functionshow_one()  
  8. {  
  9. echo$this->one;  
  10. }  
  11. }  
  12.  
  13. //page1.php:  
  14. include("classa.inc");  
  15.  
  16. $a=newA;  
  17. $s=serialize($a);  
  18. //將$s存放在某處使page2.php能夠找到  
  19. $fp=fopen("store","w");  
  20. fputs($fp,$s);  
  21. fclose($fp);  
  22.  
  23. //page2.php:  
  24. //為了正常解序列化需要這一行  
  25. include("classa.inc");  
  26.  
  27. $s=implode("",@file("store"));  
  28. $a=unserialize($s);  
  29.  
  30. //現(xiàn)在可以用$a對象的show_one()函數(shù)了  
  31. $a->show_one();  
  32. ?> 
責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-18 16:58:55

PHP命名規(guī)則

2009-09-17 08:47:00

Linq查詢

2010-07-28 16:14:53

2022-03-04 20:40:59

VimLinuxshell

2010-07-26 16:21:13

Telnet端口

2011-08-25 14:43:55

LUA對象序列化

2011-06-01 15:05:02

序列化反序列化

2018-03-19 10:20:23

Java序列化反序列化

2019-11-20 10:07:23

web安全PHP序列化反序列化

2009-06-14 22:01:27

Java對象序列化反序列化

2009-12-09 09:38:15

PHP序列化數(shù)組

2012-04-13 10:45:59

XML

2009-03-10 13:38:01

Java序列化字節(jié)流

2009-12-01 16:22:17

PHP序列化格式

2009-09-09 14:45:41

XML序列化和反序列化

2009-09-09 15:47:27

XML序列化和反序列化

2021-08-30 12:25:12

Python序列化函數(shù)

2012-02-14 10:29:02

Java

2009-08-25 15:15:08

C#對象序列化應(yīng)用

2022-08-06 08:41:18

序列化反序列化Hessian
點贊
收藏

51CTO技術(shù)棧公眾號