Warum return $this in / Set-Methoden?
Untersuchen, Zend Framework, fand ich, dass alle setter-Methoden (von denen, die ich geprüft habe) zurückgeben der Instanz der Klasse, in der es lebt. Es hat nicht nur einen Wert, sondern gibt auch $this
. Zum Beispiel:
/* Zend_Controller_Router */
public function setGlobalParam($name, $value) {
$this->_globalParams[$name] = $value;
return $this;
}
/* Zend_Controller_Request */
public function setBaseUrl($baseUrl = null) {
//... some code here ...
$this->_baseUrl = rtrim($baseUrl, '/');
return $this;
}
/* Zend_Controller_Action */
public function setFrontController(Zend_Controller_Front $front) {
$this->_frontController = $front;
return $this;
}
Und so weiter. Jede öffentliche setter zurück $this
. Und es ist nicht nur für setter, es gibt auch andere Methoden für die Aktionen, die Rückkehr $this
:
public function addConfig(Zend_Config $config, $section = null) {
//... some code here ...
return $this;
}
Warum ist dies nötig? Was bedeutet die Rückkehr $this
tun? Es haben einige eine Besondere Bedeutung?
- Rückkehr
$(this)
heißt, Sie können-chain-Methoden, wie zB$myClass->method_1($x)->method_2($y)
. - Ich bemerkte dies in der Vergangenheit als gut und hätte nie gedacht, die Frage zu stellen. Vielen Dank, ich habe jetzt die Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
return $this
ermöglicht die Verkettung von Methoden wie:Es ist so, dass Methodenaufrufe auf ein Objekt werden kann "angekettet", wie dies.