Как вы создаете вложенные методы в PHP? - PullRequest
2 голосов
/ 06 февраля 2012

Например, я видел сторонние приложения с такими функциями:

$db->select('columns')->from('table')->where('condition');

Это всего лишь пример.Как вы создаете такие методы?

Ответы [ 2 ]

5 голосов
/ 06 февраля 2012

Для этого каждый из методов должен возвращать $this, экземпляр класса, который содержит методы.

class MyClass {

   public function select($x){
      // do something
      return $this;
   }

   public function from($x){
      // do something
      return $this;
   }

   public function where($x){
      // do something
      return $this;
   }

}

внутри этих методов, вы обычно выполняете какое-то изменение состоянияобъекта.

0 голосов
/ 06 февраля 2012

В вашем примере методы просто возвращают объекты.Поэтому $db->select() возвращает объект с методом from(), который возвращает объект с методом where().

...