博客列表 >php回调函数

php回调函数

JasonKim的博客
JasonKim的博客原创
2019年03月31日 14:35:111565浏览
<?php
/**
 * Created by PhpStorm.
 * User: Jason
 * Date: 2019/3/31
 * Time: 14:06
 */

// 普通函数
function bigger($a,$b)
{
    return "$a,$b 中较大的数是:".($a > $b ? $a : $b );
}

// 声明函数调用bigger
function main($big)
{
    return $big(12,32);
}
// 调用函数,把函数名称写入即可
echo main('bigger').'<hr>';


// 实际中是使用匿名函数完成函数注入
$bigger = function($a,$b)
{
    return "$a,$b 中较大的数是:".($a > $b ? $a : $b );
};
// 自定义函数
function main1($big) {
    return $big(23,52);
}
// 调用匿名函数
echo main1($bigger).'<hr>';


/**
 * php内置了两个双胞胎函数:用来执行回调
 * 1、call_user_func();  单个参数传参
 * 2、call_user_func_array(); 数组形式传参
 */

// 调用普通函数
echo call_user_func('bigger',233,532).'<hr>';

// 调用匿名函数
echo call_user_func($bigger,231,132).'<hr>';


// 工作中常用的是call_user_func_array();
echo call_user_func_array($bigger,[122,324]).'<hr/>';

// 类
class demos
{
    public static function getMethod()
    {
        return '方法是:'.__METHOD__;
    }

    public function getAge(){
        return 28;
    }
}

// 可以调用类中的方法
echo call_user_func(['demos','getMethod']).'<hr>';
echo call_user_func('demos::getMethod').'<hr>';
// 调用不到公有方法
echo call_user_func(['demos','getAge']);


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议