2

我见过这样做的其他对象:

$obj->method1()->method2();

我怎么做?每个函数只是修改一个对象的指针还是返回一个指针?

我不知道这种风格的正确术语——如果有人能帮助我,那就太好了。

4

4 回答 4

5

这是通过$this在每个函数的末尾返回来实现的,从而给出一个可链接的引用。

class MyClass {
    public function method1() {
        //...
        return $this;
    }
    public function method2() {
        //...
        return $this;
    }
}
于 2010-06-02T22:50:04.160 回答
4

流畅的界面。

只需将对象的 method1() 设置为返回 $this

于 2010-06-02T22:49:01.913 回答
1

我将此称为方法链接。见http://www.devshed.com/c/a/PHP/Method-Chaining-in-PHP-5/1/

也在你的方法里面

public function method1()
   // do stuff

   return $this;
}
于 2010-06-02T22:53:06.693 回答
1

假设您有一个 Person 类。你会让你的方法做这样的事情:

public function setName($name)
{
    $this->name = $name;
    return $this; // We now return $this (the Person)
}

下载 Zend Framework 并检查代码的某些部分——您可以从那里学到很多东西。

于 2010-06-02T22:51:26.883 回答