开发大型PHP项目的方法(四)

长安初云

长安初云

2016-01-29 15:15

开发大型PHP项目的方法(四),开发大型PHP项目的方法(四)
      
  PHP的面向对象编程:开发大型PHP项目的方法(四)
  作者/来源:limodou
  
  br> PHP的高级OOP技术
    在看过基本的OOP概念后,我就可以向你展示更高级的技术:
  
  序列化(Serializing)
    PHP不支持永久对象,在OOP中永久对象是可以在多个应用的引用中保持状态和功能的对象,这意味着拥
  有将对象保存到一个文件或数据库中的能力,而且可以在以后装入对象。这就是所谓的序列化机制。PHP 拥
  有序列化方法,它可以通过对象进行调用,序列化方法可以返回对象的字符串表示。然而,序列化只保存了
  对象的成员数据而不包话方法。
  
    在PHP4中,如果你将对象序列化到字符串$s中,然后释放对象,接着反序列化对象到$obj,你可以继续
  使用对象的方法!我不建议这样去做,因为(a)文档中没有保证这种行为在以后的版本中仍然可以使用。(b)
  这个可能导致一种误解,在你把一个序列化后的版本保存到磁盘并退出脚本时。当以后运行这个脚本时,你
  不能期待着在反序列化一个对象时,对象的方法也会在那里,因为字符串表示根本就不包括方法。
  
    总而言之,PHP 进行序列化对于保存对象的成员变量非常有用。(你也可以将相关数组和数组序列化到
  一个文件中)。
  
  例子 :
  
  --------------------------------------------------------------------------------
  <?php
  
  $obj=new Classfoo();
  $str=serialize($obj);
  
  //保存$str到磁盘上
  
  
  //几个月以后
  
  
  //从磁盘中装入str
  
  $obj2=unserialize($str)
  
  ?>--------------------------------------------------------------------------------
    你恢复了成员数据,但是不包括方法(根据文档所说)。这导致了只能通过类似于使用$obj2->x来存取
  成员变量(你没有别的方法!)的唯一办法,所以不要在家里试它。
  
    有一些办法可以解决这个问题,我把它留着,因为对这篇简洁的文章来说,他们太不好。
  
    我会很高兴地欢迎在PHP的后续版本中有全序列化的特性。
  
  

 
展开更多 50%)
分享

猜你喜欢

开发大型PHP项目的方法(四)

PHP
开发大型PHP项目的方法(四)

开发大型php项目的方法

PHP
开发大型php项目的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

开发大型PHP项目的方法(五)

PHP
开发大型PHP项目的方法(五)

开发大型PHP项目的方法(一)

PHP
开发大型PHP项目的方法(一)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

开发大型PHP项目的方法(三)

PHP
开发大型PHP项目的方法(三)

开发大型PHP项目的方法(二)

PHP
开发大型PHP项目的方法(二)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

简单设置IIS配置PHP调试环境

简单设置IIS配置PHP调试环境

《超级英雄》灵丸炮怎么获得

《超级英雄》灵丸炮怎么获得
下拉加载更多内容 ↓