return $this; 的一些理解

在 ThinkPHP 中常见到这种写法.

一直当作黑匣子没去理解, 今天闲者就看看源码. 发现, table() 和 $this 一样都是 This 对象, table 方法中, 最后结尾是 return $this;

ThinkPHP 调用 table 方法,为其所在类的全局变量赋值(指定哪一个数据表), 然后返回的 $this 是处理过全局变量的类对象, 它再调用的方法, 就能使用之前的全局变量了.

下面附上 table 部分源码:

上面的 options 就是一个全局变量, 调用 table 后, options 一般都会改变, 设定此时应该操作那个数据表. 继而,返回的 this 对象调用下一个方法, 比如 select(), select 获取 option 的内容, 并执行搜索操作.

然后这里还有一些自己不明白的地方
1. 返回的 $this 对象和 new 生成的对象有不同之处么?
2. 这里和对象拷贝、浅拷贝有什么关联?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部