Подтвердить что ты не робот

Зачем возвращать $this в методах setter?

Изучая Zend Framework, я обнаружил, что каждый метод setter любого из его классов (из тех, которые были рассмотрены Ive) возвращает экземпляр класса, в котором он живет. Не просто устанавливает какое-то значение, но устанавливает значение, а также возвращает $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. И не только сеттеры, но и некоторые методы действий, они также возвращают $this:

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

Зачем это нужно? Что такое возврат $this? Имеет ли он какое-то особое значение?

4b9b3361

Ответ 1

return $this позволяет связывать такие методы, как:

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

Ответ 2

Это так, что вызов метода на объект может быть "закованным", как это.

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