可能重复:
PHP 方法链接混淆
如果我有一个 php 类
class ClassName {
function f1() {
//...
}
function f2() {
//...
}
}
$cn = new ClassName();
如何定义我可以在样式中使用函数的类
$cn->f1()->f2();
代替
$cn->f1();
$cn->f2();
谢谢你。
可能重复:
PHP 方法链接混淆
如果我有一个 php 类
class ClassName {
function f1() {
//...
}
function f2() {
//...
}
}
$cn = new ClassName();
如何定义我可以在样式中使用函数的类
$cn->f1()->f2();
代替
$cn->f1();
$cn->f2();
谢谢你。
class ClassName {
public function f1() {
//...
return $this;
}
public function f2() {
//...
return $this;
}
// and for a static
public static function sf1() {
// ...
return self;
}
}
但是,方法链接是个坏主意。它使代码难以阅读。
如果您要返回同一对象的实例,则不会直接有害。但是,当您开始编写类似的代码时$locator->get('MySQL')->connection()->query('SELECT 1');
,那些坚持维护您的代码的人可能会找到您的住所并惩罚您。
此外,如果您是按照“但是 jquery 做到了”的推理,我很遗憾地通知您,但这 - 通常情况下 - 表明某事是一种不好的做法。
要在函数中进行链接,您需要从函数返回当前对象。
return $this;
在你的函数中添加这个f1()
..
class ClassName {
function f1() {
//...
return $this;
}
function f2() {
//...
return $this;
}
}