php中一些关于函数处理的方法

php中的call

自己随便归类的,不一定准确

callable、Closure

callable需要传的是一个函数名称字符串变量,使用call_user_funccall_user_func_array来调用
Closure需要传入的是一个函数,直接closureName()调用

call_user_func

内置函数:调用指定的函数

function call_user_func ($function, ...$parameter) {}
示例

调用一般函数的时候,直接传方法名的字符串function
调用类函数的时候,不区分类方法和成员方法,都使用ClassName::function或者[ClassName, function]的形式,如果函数有入参,必须传参数,否则报错;多传了是没有问题的

call_user_func('test');
call_user_func('Test::c1');
call_user_func('Test::c2', 2, 3);
call_user_func('Test::c3');
call_user_func('Test::c4', 'test');
call_user_func(['Test', 'c1']);
call_user_func(['Test', 'c2'], 2, 3);
call_user_func(['Test', 'c3']);
call_user_func(['Test', 'c4'], 'test');

function test() {
    echo "这里是test" . PHP_EOL;
}

class Test
{
    public function c1() {
        echo "这里是c1" . PHP_EOL;
    }

    public function c2($n) {
        echo "这里是c2 " . $n . PHP_EOL;
    }

    public static function c3() {
        echo "这里是c3 " . PHP_EOL;
    }

    public static function c4($n) {
        echo "这里是c4 " . $n . PHP_EOL;
    }
}
call_user_func_array

内置函数:调用指定的函数,和call_user_func的区别在于是使用数组方式传参的

function call_user_func_array ($function, array $param_arr) {}
示例
call_user_func_array('test', []);
call_user_func_array('Test::c1', []);
call_user_func_array('Test::c2', [2, 3]);
call_user_func_array('Test::c3', []);
call_user_func_array('Test::c4', ['test']);
call_user_func_array(['Test', 'c1'], []);
call_user_func_array(['Test', 'c2'], [2, 3]);
call_user_func_array(['Test', 'c3'], []);
call_user_func_array(['Test', 'c4'], ['test']);


function test() {
    echo "这里是test" . PHP_EOL;
}

class Test
{
    public function c1() {
        echo "这里是c1" . PHP_EOL;
    }

    public function c2($n) {
        echo "这里是c2 " . $n . PHP_EOL;
    }

    public static function c3() {
        echo "这里是c3 " . PHP_EOL;
    }

    public static function c4($n) {
        echo "这里是c4 " . $n . PHP_EOL;
    }
}
其他函数处理函数

create_function — 创建一个匿名函数,返回一个唯一的函数名
forward_static_call_array — 调用一个静态方法,以数组形式传递参数
forward_static_call — 调用一个静态方法(调用类的成员方法会有警告)
func_get_arg — 返回参数列表的某一项
func_get_args — 返回一个包含函数参数列表的数组
func_num_args — 返回传入参数的个数
function_exists — 如果给定的函数已经被定义就返回 TRUE
get_defined_functions — 返回所有已定义函数的数组
register_shutdown_function — 注册一个页面载入完成后运行的函数
register_tick_function — 注册一个按要求调用的函数
unregister_tick_function — 取消一个按要求调用的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三书yjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值