Как создать привязку метода PHP?
Я видел другие объекты, которые делают это:
$obj->method1()->method2();
Как мне это сделать? Является ли каждая функция просто изменением указателя объекта или возвращением указателя?
Я не знаю подходящего термина для этого стиля - если бы кто-нибудь мог мне в этом помочь, было бы здорово.
2
4 answers
Это достигается путем возврата $this
в конце каждой функции, что дает цепную ссылку.
class MyClass {
public function method1() {
//...
return $this;
}
public function method2() {
//...
return $this;
}
}
5
Author: Lotus Notes, 2010-06-02 22:50:04
Интерфейс жидкости.
Просто установите метод1() вашего объекта, чтобы возвращать $this
4
Author: Mark Baker, 2010-06-02 22:49:01
Допустим, у вас есть класс Person. У вас будут свои методы, делающие что-то подобное:
public function setName($name)
{
$this->name = $name;
return $this; // We now return $this (the Person)
}
Скачайте Zend Framework и проверьте некоторую часть кода - вы можете многому научиться оттуда.
1
Author: ronaldosantana, 2010-06-02 22:51:26
Я называю это цепочкой методов. См. http://www.devshed.com/c/a/PHP/Method-Chaining-in-PHP-5/1/
Также внутри вашего метода
public function method1()
// do stuff
return $this;
}
1
Author: dalton, 2010-06-02 22:53:06