【发布时间】:2012-06-19 20:08:49
【问题描述】:
检查 Zend 框架,我发现所有 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 有什么作用?有什么特殊含义吗?
【问题讨论】:
-
返回
$(this)表示可以链接方法,例如$myClass->method_1($x)->method_2($y)。 -
我过去也注意到了这一点,从没想过要问这个问题。谢谢,我现在有了答案。
标签: php zend-framework return getter-setter