连贯操作浅析
时间:2011-06-07 来源:策马江湖
基本思想:通过PHP的__call方法把要操作的内容保存起来,最后一步操作时执行。
知道这个思想,很快就可以搭建出这样的程序:
<?php class Test{ protected $options = array(); public function __call($method,$args){ if(in_array($method,array('where','data','add'))){ $this->options[] = $args[0]; }else{ echo '您所操作的方法'.$method.'不存在'; } } public function display(){ return $this->options; } } $Test = new Test(); $result = $Test->where('a=1,b=2')->display(); var_dump($result); ?>
输出的结果:
再返回看一下ThinkPHP的源码,发现它在每执行一次方法都会有一句: return $this;
把对象自身返回,这才是连贯操作里至关紧要的一步,把自身返回后,执行下一步操作时才不会出现执行方法而找不到对象的问题了。
相关阅读 更多 +