,如果我有一個PHP類
class ClassName {
function f1() {
//...
}
function f2() {
//...
}
}
$cn = new ClassName();
如何定義,我可以在風格
使用功能的類$cn->f1()->f2();
代替
$cn->f1();
$cn->f2();
謝謝。
,如果我有一個PHP類
class ClassName {
function f1() {
//...
}
function f2() {
//...
}
}
$cn = new ClassName();
如何定義,我可以在風格
使用功能的類$cn->f1()->f2();
代替
$cn->f1();
$cn->f2();
謝謝。
要在您需要從功能返回當前對象功能鏈接..
return $this;
在你的函數f1()
添加這個..
class ClassName {
function f1() {
//...
return $this;
}
function f2() {
//...
return $this;
}
}
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做它」推理,我很抱歉告訴你,但是 - 通常不是 - 是一個跡象,這是一個不好的做法。
這將是正確的。 – 2012-08-12 06:48:32
非常感謝! – iff 2012-08-12 07:19:03