CodeIgniter连贯操作的底层原理分析
作者:yanhui_wei 时间:2024-05-02 17:15:11
本文分析了CodeIgniter连贯操作的底层原理。分享给大家供大家参考,具体如下:
php oop连贯操作原理
->符号其实是传递对象指针的。或许这么说是不对的。
但是,我们可以这么的理解。
不多说。放代码。
普通用法:
<?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();
?>
看到了没有。
连起来了。可以把操作串起来。
看起来直观多了。阅读代码时也轻松了很多。
类里面操作都返回了一个指针。
$this.
他等价于你初始化的那个对象 $oktest
所以下面的操作可以连续起来。
试着去掉每个操作里的
return $this
你将会看到错误提示。
例子:
<?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();
?>
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。
标签:CodeIgniter,连贯操作
0
投稿
猜你喜欢
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2024-04-28 09:39:14
python获取本机外网ip的方法
2022-06-24 01:57:16
Web UI 设计(网页设计)命名规范
2009-05-13 13:06:00
Python处理json字符串转化为字典的简单实现
2022-05-15 01:42:58
Python使用pymongo模块操作MongoDB的方法示例
2023-03-26 08:58:46
python游戏实战项目之智能五子棋简易版
2021-02-06 21:32:56
Python astype(np.float)函数使用方法解析
2021-02-23 17:28:16
关于base64编码的原理及实现方法分享
2023-08-31 07:34:40
快速入手Python字符编码
2022-05-26 00:52:33
Python工程师必考的6个经典面试题
2021-07-01 02:55:32
用Python中的__slots__缓存资源以节省内存开销的方法
2021-06-21 10:33:40
MySQL系列之九 mysql查询缓存及索引
2024-01-22 12:46:10
python里读写excel等数据文件的6种常用方式(小结)
2021-04-09 08:11:52
掀起抛弃IE6的高潮吧
2009-02-26 12:44:00
MySQL并发更新数据时的处理方法
2024-01-21 13:57:00
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2023-08-21 20:03:14
Python Opencv实现图像轮廓识别功能
2023-02-27 12:32:40
Django form表单与请求的生命周期步骤详解
2023-06-20 06:29:15
Python中的装饰器用法详解
2022-02-09 04:03:33
一文教你如何优雅处理Golang中的异常
2024-02-13 21:32:33