开发大型PHP项目的技巧与方法[5]

 我来答
天罗网17
2022-11-03 · TA获得超过6189个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73万
展开全部

  这个功能很强大 只要定义方法 而不去考虑所有对象的类型 在不同的类中按不同的方法实现它们 然后在主脚本中对任意对象使用它们 没有if else 也不需要两个程序员 只有高兴

  现在你同意编程是容易的 维护是便宜的 可重用是真的吗?

  如果你管理一组程序员 分配工作就是很简单的了 每个人可能负责一个类型的对象和处理它的类

  可以通过这个技术实现国际化 根据用户所选的语言字段应用相应的类就可以了 等等

   拷贝和克隆

  当你创建一个$obj的对象时 你可以通过$obj =$obj来拷贝对象 新的对象是$obj的一个拷贝(不是一个引用) 所以它具有$obj在当时的状态 有时候 你不想这样 你只是想生成一个象obj类一样的一个新的对象 可以通过使用new语句来调用类的构造函数 在PHP中也可以通过序列化 和一个基类来实现 但所有的其它类都要从基类派生出来

   进入危险区域

  当你序列化一个对象 你会得到某种格式的字符串 如果你感兴趣 你可以调究它 其中 字符串中有类的名字(太好了!) 你可以把它取出来 象

  代码:

  以下是引用片段

以下是引用片段: <?php  $herring=serialize($obj);  $vec=explode(´:´,$herring);  $nam=str_replace("\"",´´,$vec[2]);  ?> 

  所以假设你创建了一个"Universe"的类,并且强制所有的类都必须从universe扩展,你可以在universe中定义一个clone的方法,如下代码:

  以下是引用片段:

以下是引用片段:   <?php  class Universe {  function clone() {  $herring=serialize($this);  $vec=explode(´:´,$herring);  $nam=str_replace("\"",´´,$vec[2]);  $ret=new $nam;  return $ret;  }  }  //然后  $obj=new Something();  //从Universe扩展  $other=$obj->clone();  ?> 

   你所得到的是一个新的Something类的对象,它同使用new方法,调用构造函数创建出的对象一样。.wInGWIT.我不知道这个对你是否有用,但是Universe类可以知道派生类的名字是一个好的经验。想象是唯一的限制。

lishixinzhi/Article/program/PHP/201311/21400

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式