您的位置:首页 > 编程语言

回调函数与匿名函数,一段值得研究的代码

2017-11-14 20:02 127 查看
//声明函数swap,作为下面匿名函数的回调函数
function swap(&$x, &$y)
{
$temp = $x;
$x = $y;
$y = $temp;

return;
}

//call_user_func_array调用的回调函数
function add($a, $b)
{
return $a + $b;
}

//匿名函数,即不声明函数名称而使用一个变量来代替函数声明
$fuc = function ($fucName) {
$x = 1;
$y = 2;
//调用回调函数
$fucName($x, $y);
echo 'x=' . $x . ',y=' . $y;
echo '<br>';
$arr = array($x, $y);
//与$fucName($x, $y)相同效果
//这里无法调用swap方法,因为swap方法是对参数引用传值
//与call_user_func_array都无法调用引用传参形式的函数
echo call_user_func('add', $x ,$y);
};

//调用方式
$fuc('swap');


匿名函数的调用

$callable = function($num1,$num2){
return $num1 + $num2;
};

echo call_user_func($callable, 1, 2), '<br/>'; // 输出 3
echo $callable(1, 2), '<br/>'; // 输出 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP