开发者

PHP: Callback functions

Some functions in PHP require a callback function.开发者_StackOverflow How can I do this in a function myself? First of all, how do I define a function that require a callback function?

And secondly, how do I provide a custom function as the callback function? How do I provide a regular function, an instance function and a static function?


Use the built in call_user_func(). It may be necessary to use 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
  }
}

This is safer than just doing $c($a) a.k.a passed_callback(passed_argument) because checking to see if the function actually exists is done for you, though some have commented on performance degradation over $c($a).


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


You could use type hinting to force someone to use a specific type of variable.

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

test(function(){
    echo __LINE__.PHP_EOL;
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜