检查Zend Framework,我发现所有setter方法(我已经检查过的方法)返回它所在的类的实例。它不仅设置了一个值,还返回$this
。例如:
/* 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;
}
等等。每个公共设置者返回$this
。并且它不仅适用于setter,还有其他操作方法返回$this
:
public function addConfig(Zend_Config $config, $section = null) {
// ... some code here ...
return $this;
}
为什么需要这个?返回$this
做什么?它有一些特殊含义吗?
答案 0 :(得分:39)
return $this
允许链接方法,如:
$foo->bar('something')->baz()->myproperty
答案 1 :(得分:4)
这样对对象的方法调用可以“链接”,就像这样。
$obj -> setFoo ('foo') -> setBar ('bar') -> setBaz ('baz') -> setFarble ('farble');