将匿名回调函数作为参数传递给函数?
Pass anonymous callback function as argument into function?
我想将一个函数发送到另一个函数中,稍后在该函数中执行。这个想法类似于jQuery.
中的回调成功函数
思路是这样的:
function my_function($args)
{
// ...
// Code that creates the $result variable
// ..
// Execute the calback function, how??:
$args['callback_function']; // Handle the $result
}
$args = array(
'callback_function' => function($result)
{
// $result created in my_function()
}
);
my_function($args);
你可以这样做:
$args['callback_function']($result);
或者像这样:
call_user_func($args['callback_function'], $result);
更多信息:http://php.net/manual/en/function.call-user-func.php
例子
function my_function($args)
{
// ...
// Code that creates the $result variable
$result = 1;
// ...
call_user_func($args['callback_function'], $result);
}
$args = array(
'callback_function' => function($result) {
echo ++$result;
}
);
my_function($args);
输出
2
使用您自己的示例,您可以这样做...
function my_function($args)
{
$res= "your value here";
$args['callback_function']($res); // Handle the $result
}
$args = array(
'callback_function' => function($result)
{
var_dump($result);
}
);
my_function($args);
我想将一个函数发送到另一个函数中,稍后在该函数中执行。这个想法类似于jQuery.
中的回调成功函数思路是这样的:
function my_function($args)
{
// ...
// Code that creates the $result variable
// ..
// Execute the calback function, how??:
$args['callback_function']; // Handle the $result
}
$args = array(
'callback_function' => function($result)
{
// $result created in my_function()
}
);
my_function($args);
你可以这样做:
$args['callback_function']($result);
或者像这样:
call_user_func($args['callback_function'], $result);
更多信息:http://php.net/manual/en/function.call-user-func.php
例子
function my_function($args)
{
// ...
// Code that creates the $result variable
$result = 1;
// ...
call_user_func($args['callback_function'], $result);
}
$args = array(
'callback_function' => function($result) {
echo ++$result;
}
);
my_function($args);
输出
2
使用您自己的示例,您可以这样做...
function my_function($args)
{
$res= "your value here";
$args['callback_function']($res); // Handle the $result
}
$args = array(
'callback_function' => function($result)
{
var_dump($result);
}
);
my_function($args);