牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP 匿名函数和回调函数的使用

创建时间:2016-12-05 投稿人: 浏览次数:754

开发环境

  • phpstorm 2016.1
  • php 5.6
  • Mac OS 10.12.1

代码

<?php
header("content-type:text/html;charset=utf-8");

//声明函数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");

输出结果

x=2,y=1
3
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。