Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

PHP: Как называется данная цепочка функций?

#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();

Комментариев нет:

Отправить комментарий