#php #классы #функции
Подскажите пожалуйста как называется данная цепочка функций и как её организовать? /*class Example*/ (new Example)->functionOne()->functionTwo(); и возможна ли такая связка? /*class Example*/ (new Example)->functionOne($one)->functionTwo($two); Лучше будет если направить на литературу. Я либо плохо гуглил, либо что-то не заметил.
Ответы
Ответ 1
Такой приём называется чейнингом. Можете почитать о нём, например на хабре. Его суть заключается в том, что методы возвращают ссылку на экземпляр объекта. Это может быть как объект, в котором этот метод вызывался (как у вас в примере), так и любой другой. /** * Все методы класса Example возвращают ссылку на себя */ class Example { function exampleFunctionOne() { echo "exampleFunctionOne\n"; return $this; } function exampleFunctionTwo() { echo "exampleFunctionTwo\n"; return $this; } } /** * Метод класса Example2 принимает в качестве аргумента экземпляр * класса Example и возвращают ссылку на него */ class Example2 { function example2FunctionOne($example) { echo "example2FunctionOne\n"; return $example; } } $e = new Example(); $e->exampleFunctionOne()->exampleFunctionTwo(); $e2 = new Example2(); $e2->example2FunctionOne($e)->exampleFunctionTwo();
Комментариев нет:
Отправить комментарий