CodeIgniter連貫操作的底層原理分析
本文分析了CodeIgniter連貫操作的底層原理。分享給大家供大家參考,具體如下:
php oop連貫操作原理
->符號(hào)其實(shí)是傳遞對(duì)象指針的。或許這么說是不對(duì)的。
但是,我們可以這么的理解。
不多說。放代碼。
普通用法:
<?php class test { public $a=''; public $b=''; public function actiona() { $this->a="hello"; return $this; } public function actionb() { $this->b="world"; return $this; } public function actionc() { echo $this->a." ".$this->b; } } $oktest=new test(); $oktest->actiona(); $oktest->actionb(); $oktest->actionc(); ?>
連貫用法:
<?php class test { public $a=''; public $b=''; public function actiona() { $this->a="hello"; return $this; } public function actionb() { $this->b="world"; return $this; } public function actionc() { echo $this->a." ".$this->b; } } $oktest=new test(); $oktest->actiona()->actionb()->actionc(); ?>
看到了沒有。
連起來了。可以把操作串起來。
看起來直觀多了。閱讀代碼時(shí)也輕松了很多。
類里面操作都返回了一個(gè)指針。
$this.
他等價(jià)于你初始化的那個(gè)對(duì)象 $oktest
所以下面的操作可以連續(xù)起來。
試著去掉每個(gè)操作里的
return $this
你將會(huì)看到錯(cuò)誤提示。
例子:
<?php class sql{ public $select; public $from; public $where; public $order; public $limit; public function from($_from='FROM test') { $this->from=$_from; return $this; } public function where($_where='WHERE 1=1') { $this->where=$_where; return $this; } public function order($_order='ORDER BY id DESC') { $this->order=$_order; return $this; } public function limit($_limit='LIMIT 0,30') { $this->limit=$_limit; return $this; } public function select($_select='SELECT *') { $this->select=$_select; return $this->select." ".$this->from." ".$this->where." ".$this->order." ".$this->limit; } } $sql =new sql(); echo $sql->from()->where()->order()->limit()->select(); ?>
更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于CodeIgniter框架的PHP程序設(shè)計(jì)有所幫助。
- CodeIgniter生成靜態(tài)頁的方法
- CodeIgniter記錄錯(cuò)誤日志的方法全面總結(jié)
- CodeIgniter基于Email類發(fā)郵件的方法
- CodeIgniter分頁類pagination使用方法示例
- Codeigniter中集成smarty和adodb的方法
- CodeIgniter針對(duì)數(shù)據(jù)庫的連接、配置及使用方法
- CodeIgniter表單驗(yàn)證方法實(shí)例詳解
- CodeIgniter配置之a(chǎn)utoload.php自動(dòng)加載用法分析
- CodeIgniter自定義控制器MY_Controller用法分析
- CodeIgniter鉤子用法實(shí)例詳解
- CodeIgniter多語言實(shí)現(xiàn)方法詳解
- CodeIgniter輔助之第三方類庫third_party用法分析
- CodeIgniter常用知識(shí)點(diǎn)小結(jié)
相關(guān)文章
PHPstorm啟用自動(dòng)換行的方法詳解(IDE)
這篇文章主要介紹了PHPstorm啟用自動(dòng)換行的方法詳解(IDE),本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09thinkphp實(shí)現(xiàn)發(fā)送郵件密碼找回功能實(shí)例
這篇文章主要介紹了thinkphp實(shí)現(xiàn)發(fā)送郵件密碼找回功能的方法,以實(shí)例形式詳細(xì)講述了配置文件與功能代碼的實(shí)現(xiàn)方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12php小型企業(yè)庫存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)代碼
雙專業(yè)畢業(yè)論文做了一個(gè)小型企業(yè)庫存管理系統(tǒng),使用PHP&mysql組合進(jìn)行開發(fā)。頭一次開發(fā)稍微大一點(diǎn)的東西,php也是自學(xué)的2011-05-05Laravel中validation驗(yàn)證 返回中文提示 全局設(shè)置的方法
今天小編就為大家分享一篇Laravel中validation驗(yàn)證 返回中文提示 全局設(shè)置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09PHP去除字符串最后一個(gè)字符的三種方法實(shí)例
這篇文章主要介紹了PHP去除字符串最后一個(gè)字符的三種方法,文中給出了詳細(xì)的實(shí)例代碼,對(duì)大家的理解和學(xué)習(xí)具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03在WordPress的文章編輯器中設(shè)置默認(rèn)內(nèi)容的方法
這篇文章主要介紹了在WordPress的文章編輯器中設(shè)置默認(rèn)內(nèi)容的方法,包括給不同類型的文章設(shè)置不同內(nèi)容的具體方法,需要的朋友可以參考下2015-12-12php 多文件上傳的實(shí)現(xiàn)實(shí)例
在php中,實(shí)現(xiàn)文件上傳時(shí)一個(gè)很簡(jiǎn)單的事情,但是如果我們要一次上傳多個(gè)文件,那又該如何編寫代碼呢?,需要的朋友可以參考下2016-10-10