PHP5 Method Chaining

Method Chaining(метод сцепления) — полезная функция, введена в PHP5 в рамках улучшения ООП по сравнению с PHP4. Эта функция  позволяет делать такие вещи, как:

  1. $object->method_a()->method_b()->method_c();

* This source code was highlighted with Source Code Highlighter.

В PHP5 стало возможным что бы методы возвращали объект. Таким образом в примере выше, объект $object, возвращается каждый раз после выполнения очередного метода(у нас это сначала method_a(), потом method_b(), потом если нужно и method_c()). Рассмотрим более подробно метод сцепления на примере реального класса:

  1. class Person
  2.  
  3. {
  4.  
  5. private $m_szName;
  6.  
  7. private $m_iAge;
  8.  
  9. public function setName($szName)
  10.  
  11. {
  12.  
  13. $this->m_szName = $szName;
  14.  
  15. return $this; // возвращаем $this (the Person)
  16.  
  17. }
  18.  
  19. public function setAge($iAge)
  20.  
  21. {
  22.  
  23. $this->m_iAge = $iAge;
  24.  
  25. return $this; // сново возвращаем Person
  26.  
  27. }
  28.  
  29. public function introduce()
  30.  
  31. {
  32.  
  33. printf(
  34.  
  35. ‘Hello my name is %s and I am %d years old.’,
  36.  
  37. $this->m_szName,
  38.  
  39. $this->m_iAge);
  40.  
  41. }
  42.  
  43. }

* This source code was highlighted with Source Code Highlighter.

Теперь давайде создадим объект класса Person, и давайте вызовем его методы:

  1. $peter = new Person();
  2. $peter->setName(‘Peter’)->setAge(23)->introduce();

* This source code was highlighted with Source Code Highlighter.

Вот и всё.

Метки: ,

Добавить комментарий