Kiểm tra khung công tác Zend Tôi thấy rằng mọi phương thức setter của bất kỳ lớp nào của nó (của những gì tôi đã kiểm tra) đều trả về cá thể của lớp mà nó đang sống. Không chỉ thiết lập giá trị mà còn đặt giá trị và trả về $ this. Ví dụ:
/* 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;
}
Và cứ tiếp tục như vậy. Mỗi setter công cộng trả về $ this. Và không chỉ setters, cũng có một số phương pháp hành động, họ cũng trả $ này:
public function addConfig(Zend_Config $config, $section = null) {
// ... some code here ...
return $this;
}
gì được này cần thiết? Sự trở lại của $ này làm gì? Nó có ý nghĩa đặc biệt nào không?
Trả về '$ (this)' có nghĩa là bạn có thể chuỗi phương pháp, ví dụ '$ myClass-> method_1 ($ x) -> method_2 ($ y)'. –
Tôi cũng nhận thấy điều này trong quá khứ và không bao giờ nghĩ đến việc đặt câu hỏi. Cảm ơn tôi bây giờ có câu trả lời. – RockyFord