PHP: функции обратного вызова

Некоторые функции в PHP требуют функции обратного вызова. Как я могу сделать это в функции самостоятельно? Прежде всего, как определить функцию, которая требует функции обратного вызова?

И, во-вторых, как мне настроить пользовательскую функцию как функцию обратного вызова? Как предоставить регулярную функцию, функцию экземпляра и статическую функцию?

Используйте встроенный call_user_func () . Может быть необходимо использовать call_user_func_array ()

function work($a, $c) { $a = filter($a) if(!is_callable($c) || !call_user_func($c, $a)) { return 0; // throw error } else { return 1; // return success } } 

Это безопаснее, чем просто делать $c($a) aka pass_callback (pass_argument), потому что проверка на то, действительно ли функция существует, выполняется для вас, хотя некоторые из них прокомментировали снижение производительности по сравнению с $c($a) .

 function myFunc($param1, $param2, $callback) { $data = get_data($param1, $param2) $callback($data); } 

Вы можете использовать тип hinting, чтобы заставить кого-то использовать определенный тип переменной.

 function test(callable $test){ echo __LINE__.PHP_EOL; $test(); echo __LINE__.PHP_EOL; } test(function(){ echo __LINE__.PHP_EOL; }); 

Это должно помочь:

http://php.net/manual/en/language.pseudo-types.php