在ZF里面经常有和jQuery类似的链式的结构代码。

 

$("p").css("color").addClass("selected");//jQuery//比如这样jQuery可以连着使用2个方法。在ZF中也有发现类似的链式$this->_plugins ->setRequest($this->_request) ->setResponse($this->_response);

 

于是就跟进了函数,发现实现起来也还蛮简单的。只需要在每个方法最后返回$this.

下面是我写的一个例子。

<?php
class wc
{
 public function __construct($who)
 {
  echo "{$who}准备去上厕所了<br/>";
  }
  public function go()
  { echo "1.跑出了教室<br/>"; return $this; }

  public function action()
  { echo "2.到了厕所,开始尿尿<br/>"; return $this; }

  public function back(){
   echo "3.尿尿结束,回到教室"; return $this; }
  }
  
  $xm = new wc("小明");
  
  $xm->go()->action()->back();

  
  /* 执行结果:小明准备去上厕所了1.跑出了教室2.到了厕所,开始尿尿3.尿尿结束,回到了教室*/

当然这里也只是单纯实现了功能,至于其他的因素这里并没有考虑。嘿嘿。

 

?>

ps:

类中方法返回某个类对象;或者类中属性 指向某个类对象 即可

PHP面向对象的链式调用方式实现
标签: