Как использовать callback функции внутри класса

Пробовали ли вы использовать функции PHP, требующие указания кол-бек функции в качестве аргумента? Я часто пользуюсь preg_replace_callback().

Если функция вызывается внутри класса, то хотелось бы и callback разместить внутри этого же класса (объекта). О плюсах поговорим немного позже.

Как правильно объявить и вызвать такую функцию?

Предлагаю рассмотреть следующий пример PHP кода:

Класс ABN объявляет публичный метод-функцию repl(), которая заменяет цифры в строке на символ «-».  Для замены используется вызов хелпера — приватой функции этого же класса _callback(). Функция может быть объявлена и как public, это уже на ваш вкус.

Мне хотелось лишь обратить внимание на технику формирования аргумента в месте, где нужно указать CALLBACK функцию — это массив из двух элементов : ссылка на объект $this + имя функции.

Первым плюсом является сохранение чистоты пространства имен. Хелпер остаётся внутри своего класса, не создавая «бардака».

Если в хелпер требуется передать дополнительные параметры, то в случае с глобальной функцей-хелпером, необходимо будет объявлять вспомогательные глобальные переменные. А в случае хелпера внутри класса, вы сможете остаться в рамках контекста объекта, чтобы передать дополнительные данные в _callback функцию.

Мало букафф? Читайте есчо !

Досрочный выход, остановка цикла в PHP

Ноябрь 11, 2015 г.

Досрочно закончить исполнение цикла в PHP можно разными способами. Хотя конструкций циклов в PHP много, но принципы одинаковые. Для примера будем использовать цикл for. [crayon-69357bbf83e30050614254/] Цикл досрочно завершится с помощью оператора break ...

Читать

PHP: функция преобразования к каноническому пути

Январь 26, 2021 г.

На замену realpath, который работает только с реально существующими файлами и папками UNIX, а также не работающий для ссылок, я написал функцию получения канонического пути. В документации встречается функция eio_realpath, которая требует подключения ...

Читать

Как пользоваться flock()?

Март 24, 2017 г.

Если вы решаете задачу конкурентного доступа к файлу (или какому то другому ресурсу) в PHP, и решили использовать flock() для этой цели, то вам понадобится верно представлять как работает механизм блокировки. Представим себе, что есть разные программные ...

Читать

Обмен данных Angular с бек-энд на PHP

Ноябрь 11, 2016 г.

Стоит ли рассказывать, что Ангуляр при всей своей прелести лишь одна сторона медали - frontend, который как то должен взаимодействовать со второй половинкой ...

Читать
 

Комментарии к «Как использовать callback функции внутри класса»

Понравилась статья? Есть вопросы? - пишите в комментариях.



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