Callback функція

Деякі функції, такі як call_user_func () або usort () приймають в якості параметра певні користувачем callback-функції. Callback-функції можуть бути не тільки простими функціями, але також і методами об'єктів, включаючи статичні методи класів.

PHP-функція передається просто як рядок її імені. Можна використовувати будь-яку вбудовану або призначену для користувача функцію, крім мовних конструкцій, таких як: array (), echo (), empty (), eval (), exit (), isset (), list (), print () і unset () .

Метод створеного об'єкта передається як масив, що містить сам об'єкт в елементі з індексом 0 і ім'я методу в елементі з індексом 1.

Статичні методи класів також можуть бути передані без створення екземпляра об'єкту даного класу шляхом передачі імені класу замість імені об'єкта в елементі з індексом 0.

Крім загальних для користувача функцій, create_function () також може бути використана для створення анонімної callback-функції. Починаючи з версії PHP 5.3.0 стала можливим також передача замикань в callback-параметр.

Приклад # 1 Приклади callback-функцій

Приклад # 2 Приклад callback-виклику з використанням замикань

Результат виконання даного прикладу:

Зауваження: У PHP 4 було необхідно використовувати посилання при створенні callback-функції для того, щоб вона вказувала на реальний об'єкт, а не на його копію. За подробицями звертайтеся до розділу Пояснення посилань.

Зауваження: Callback-функції, зареєстровані такими функціями як call_user_func () і call_user_func_array (), що не будуть викликані за наявності не спійманого виключення, кинутого в попередній callback-функції.