<?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']);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号