CodeIgniter连贯操作的底层原理分析
本文分析了CodeIgniter连贯操作的底层原理。分享给大家供大家参考,具体如下:
phpoop连贯操作原理
->符号其实是传递对象指针的。或许这么说是不对的。
但是,我们可以这么的理解。
不多说。放代码。
普通用法:
<?php classtest { public$a=''; public$b=''; publicfunctionactiona(){ $this->a="hello"; return$this; } publicfunctionactionb(){ $this->b="world"; return$this; } publicfunctionactionc(){ echo$this->a."".$this->b; } } $oktest=newtest(); $oktest->actiona(); $oktest->actionb(); $oktest->actionc(); ?>
连贯用法:
<?php classtest { public$a=''; public$b=''; publicfunctionactiona(){ $this->a="hello"; return$this; } publicfunctionactionb(){ $this->b="world"; return$this; } publicfunctionactionc(){ echo$this->a."".$this->b; } } $oktest=newtest(); $oktest->actiona()->actionb()->actionc(); ?>
看到了没有。
连起来了。可以把操作串起来。
看起来直观多了。阅读代码时也轻松了很多。
类里面操作都返回了一个指针。
$this.
他等价于你初始化的那个对象$oktest
所以下面的操作可以连续起来。
试着去掉每个操作里的
return$this
你将会看到错误提示。
例子:
<?php classsql{ public$select; public$from; public$where; public$order; public$limit; publicfunctionfrom($_from='FROMtest'){ $this->from=$_from; return$this; } publicfunctionwhere($_where='WHERE1=1'){ $this->where=$_where; return$this; } publicfunctionorder($_order='ORDERBYidDESC'){ $this->order=$_order; return$this; } publicfunctionlimit($_limit='LIMIT0,30'){ $this->limit=$_limit; return$this; } publicfunctionselect($_select='SELECT*'){ $this->select=$_select; return$this->select."".$this->from."".$this->where."".$this->order."".$this->limit; } } $sql=newsql(); echo$sql->from()->where()->order()->limit()->select(); ?>
更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《ZendFrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。