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

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

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

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

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

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

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

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

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

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

Сохранение файла, загруженного на сервер с помощью PHP

Январь 29, 2021 г.

Эта статья о некоторых задачах, возникающих при сохранении файла на сервере, при получении его от пользователя через форму (<input type="file" />). Определимся с требованиями. Технически, решение нужно в виде функции, которая принимает набор ...

Читать

Как в PHP записать данные в файл?

Ноябрь 12, 2015 г.

Рассмотрим несколько способов сохранения данных в файл. Функция file_put_contents() для записи в файл Функция появилась в 5й версии PHP. Это самый простой, наверное, способ записать скалярные данные (строку или текст) в файл. [crayon-6ae65b9408366773755113/] ...

Читать

Генератор "удобных" паролей

Декабрь 19, 2012 г.

Простому пользователю от пароля хочется двух вещей - надежности и легкости запоминания. В случае произвольно создаваемых паролей, желаемая надежность достигается очень легко (увеличили длину генерируемого пароля или расширили набор символов, из которого ...

Читать

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

Январь 26, 2021 г.

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

Читать
 

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

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



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