2016-05-13 6 views
0

Ich habe eine Frage darüber, wie der beste Weg ist, es zu realisieren.Wie verketten Methoden in PHP?

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

Wie ich $class->method('a')->two('b'); anrufen?

return __CLASS__; // self? 

auf jede Methode? oder was? idk was ist der beste Weg oder wie alle Frameworks es realisieren.

Wenn mich jemand führen kann, werde ich sehr dankbar sein ... Danke!

+0

du meinst '$ obj->'? –

Antwort

9

Es ist durch die Rückkehr $this in jeder Methode getan.

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

Jedenfalls gibt es viele Gegner (einschließlich mir) dieser Konvention aus ein paar Gründen.

+0

ist so einfach? :O! Vielen Dank. Ich werde versuchen: D – carlos

+2

Ich bin gespannt, was Ihre Gründe gegen diese Konvention sind. Persönlich verwende ich diese Konvention seit meinen C++ Tagen. – apokryfos

+0

Suche nach "method chaining". Es gibt viele Diskussionen im Internet. Hier ein Beispiel: http://stackoverflow.com/questions/16976150/benefits-and-drawbacks-of-method-chaining-and-a-possibility-to-replace-all-void –