[关闭]
@Chiang 2020-01-07T14:37:40.000000Z 字数 635 阅读 448

对象序列化

PHP


  • 所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。 序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。
  • 为了能够unserialize()一个对象,这个对象的类必须已经定义过。如果序列化类A的一个对象,将会返回一个跟类A相关,而且包含了对象所有变量值的字符串。 如果要想在另外一个文件中解序列化一个对象,这个对象的类必须在解序列化之前定义,可以通过包含一个定义该类的文件或使用函数spl_autoload_register()来实现。
  1. <?php
  2. // classa.inc:
  3. class A {
  4. public $one = 1;
  5. public function show_one() {
  6. echo $this->one;
  7. }
  8. }
  9. // page1.php:
  10. include("classa.inc");
  11. $a = new A;
  12. $s = serialize($a);
  13. // 把变量$s保存起来以便文件page2.php能够读到
  14. file_put_contents('store', $s);
  15. // page2.php:
  16. // 要正确了解序列化,必须包含下面一个文件
  17. include("classa.inc");
  18. $s = file_get_contents('store');
  19. $a = unserialize($s);
  20. // 现在可以使用对象$a里面的函数 show_one()
  21. $a->show_one();
  22. ?>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注