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

//声明函数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
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16885135/article/details/78534400
文章标签: PHP
个人分类: php
上一篇关于php 如何访问以数字开头或带连字符 '-' 的对象属性
下一篇PHP读取超大文件和超大目录的方法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭