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
  • asp之家 网络编程 m.aspxhome.com