2016-05-13 34 views
0

我有一個關於如何最好的方式來實現它的問題。如何在PHP中鏈接方法?

class name { 
    public function method($a){ 
    $this->a = $a; 
    } 
    public function two($b){ 
    $this->b = $b; 
    } 
} 

如何撥打$class->method('a')->two('b');

return __CLASS__; // self? 

對每種方法?或者是什麼? idk什麼是最好的方式或所有框架如何實現它。

如果有人能指導我,我會非常感激......謝謝!

+0

你的意思是'$ obj->'? –

回答

9

這是通過在每種方法中返回$this完成的。

class name { 
    public function method($a){ 
    $this->a = $a; 
    return $this; 
    } 
    public function two($b){ 
    $this->b = $b; 
    return $this; 
    } 
} 

無論如何,有很多對手(包括我)的這個公約有幾個原因。

+0

這麼簡單嗎? :噢!謝謝。我會嘗試:D – carlos

+2

我很好奇你對這個約定的理由是什麼。就我個人而言,自從我的C++日子以來,我一直在使用這個約定 – apokryfos

+0

搜索「方法鏈接」。互聯網上有很多討論。這裏的一個例子:http://stackoverflow.com/questions/16976150/benefits-and-drawbacks-of-method-chaining-and-a-possibility-to-replace-all-void –