首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

连贯操作浅析

作者:  时间: 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;

把对象自身返回,这才是连贯操作里至关紧要的一步,把自身返回后,执行下一步操作时才不会出现执行方法而找不到对象的问题了。

作者: 策马江湖 发表于 2011-06-07 22:36 原文链接

评论: 0 查看评论 发表评论


最新新闻:
· 谷歌为日历服务推出新功能(2011-06-07 23:12)
· 百度推网站分享按钮嵌入服务 可分享SNS站点(2011-06-07 23:06)
· 安全人士称索尼安全问题或需要数年才能解决(2011-06-07 22:49)
· 难以理解:Skype宕机,用户都责怪微软和比尔盖茨(2011-06-07 22:36)
· 苹果冷落了 iAd(2011-06-07 22:21)

编辑推荐:自己动手开发编译器(零)序言

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库