Method Chaining(метод сцепления) — полезная функция, введена в PHP5 в рамках улучшения ООП по сравнению с PHP4. Эта функция позволяет делать такие вещи, как:
- $object->method_a()->method_b()->method_c();
* This source code was highlighted with Source Code Highlighter.
В PHP5 стало возможным что бы методы возвращали объект. Таким образом в примере выше, объект $object, возвращается каждый раз после выполнения очередного метода(у нас это сначала method_a(), потом method_b(), потом если нужно и method_c()). Рассмотрим более подробно метод сцепления на примере реального класса:
- class Person
- {
- private $m_szName;
- private $m_iAge;
- public function setName($szName)
- {
- $this->m_szName = $szName;
- return $this; // возвращаем $this (the Person)
- }
- public function setAge($iAge)
- {
- $this->m_iAge = $iAge;
- return $this; // сново возвращаем Person
- }
- public function introduce()
- {
- printf(
- ‘Hello my name is %s and I am %d years old.’,
- $this->m_szName,
- $this->m_iAge);
- }
- }
* This source code was highlighted with Source Code Highlighter.
Теперь давайде создадим объект класса Person, и давайте вызовем его методы:
- $peter = new Person();
- $peter->setName(‘Peter’)->setAge(23)->introduce();
* This source code was highlighted with Source Code Highlighter.
Вот и всё.