“返回$this”是什么意思?

2022-08-30 13:47:30

我试图理解这个代码,当我到达最后一行时,我没有得到它。:(

我能得到你的帮助,以便找出,返回$this是什么意思?

public function setOptions(array $options) {
    $methods = get_class_methods($this);
    foreach ($options as $key => $value) {
        $method = 'set' . ucfirst($key);
        if (in_array($method, $methods)) {
            $this->$method($value);
        }
    }

    //???? - return what ?
    return $this;
}

更新:
为了更好地澄清,我删除了我的评论。


答案 1

这种编码方式称为流畅接口。 返回当前对象,因此您可以编写如下代码:return $this

$object
  ->function1()
  ->function2()
  ->function3()
  ;

而不是:

$object->function1();
$object->function2();
$object->function3();

答案 2

这将返回调用此方法的实例。这通常是为了实现流畅的界面,因此您可以调用如下内容:

CoolClass::factory('hello')->setOptions(array('coolness' => 5))->sayHello();

其中,两者和将在同一对象上调用。setOptionssayHello


推荐