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

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

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

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

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

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

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

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

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

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

Поиск и замена терминов. Пример реализации.

Август 15, 2016 г.

Задача поиска и замены каких либо терминов в тексте кажется на первый взгляд довольно простой в PHP.  Есть очень мощные инструменты вроде str_replace, а также поиск и замена с помощью регулярных выражений, например, preg_replace и preg_replace_callback. ...

Читать

Переводим строку в число с плавающей запятой в PHP

Май 7, 2018 г.

Скаляры для PHP все на одно лицо. Строки или числа, с плавающей запятой или без. PHP не заморачивается. Ему не нужны строгие рамки типов скаляра. Платить за эту вольность приходится довольно скоро. Начнем с того, что PHP знает два оператора сложения, ...

Читать

Работаем с датами широкого диапазона в PHP

Январь 28, 2016 г.

Многие не задумываются при работе в PHP со стандартными функциями даты-времени о диапазоне их применимости (date(), time(), mktime() и т.п). Так мы можем скоро столкнуться с проблемой, подобная которой случалась уже раньше - "ошибка 2000". Я прекрасно ...

Читать

Вариант filemtime для работы с URL

Январь 1, 2018 г.

Может пригодиться, к примеру, для задач кеширования. Мы запросим с сервера только заголовки файла и извлечем из них значение last-modified. Почти готовый вариант я нашел в сети, чуть-чуть изменил для своих задач. Принцип описан ваше. На входе ...

Читать
 

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

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



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