为什么要在 setter 方法中返回$this?

2022-08-30 21:38:26

检查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;
}

等等。每个公共设置者都返回 。它不仅适用于 setter,还有其他操作方法返回:$this$this

public function addConfig(Zend_Config $config, $section = null) {
    // ... some code here ...
    return $this;
}

为什么需要这样做?退货有什么作用?它有特殊含义吗?$this


答案 1

允许链接以下方法:return $this

$foo->bar('something')->baz()->myproperty

答案 2

这样,对对象的方法调用就可以“链接”,就像这样。

$obj -> setFoo ('foo') -> setBar ('bar') -> setBaz ('baz') -> setFarble ('farble');

推荐