关于php:了解php中calluserfunc-与-calluserfuncarray的使用及区别

一:办法解释

call_user_func:把第一个参数作为回调函数进行调用,其余参数作为回调函数的参数

call_user_func_array:把第一个参数作为回调函数进行调用,第二个参数传入数组,将数组中的值作为回调函数的参数

二:call_user_func和call_user_func_array简略介绍

1:第一个参数传入办法名

例:

(1)原生php中应用:

function test($test1, $test2) {
return $test1 . $test2;
}
echo call_user_func('test', 'a','b');//输入后果为ab
echo call_user_func_array('test', ['c', 'd']);//输入后果为cd

(2)框架中应用:

public function test($test1,$test2)
{
    return $test1 . $test2;
}
echo call_user_func(array($this, 'test'), 'a', 'b');//输入后果为ab
echo call_user_func_array(array($this, 'test'), ['a', 'b']);//输入后果为cd

2:第一个参数作为匿名函数

原生和框架中应用形式雷同:

echo call_user_func(function ($test){return $test;}, 1);//输入后果为1
echo call_user_func_array(function ($test){return $test;}, [1]);//输入后果为1

3:第一个参数调用类中的办法

class Test {
static function test1($test){
return $test;
}
}

(1):原生php调用:

echo call_user_func(array('test', 'test1'), 1);//输入后果为1
echo call_user_func_array(array('test', 'test1'), [1]);//输入后果为1

(2):框架中调用:

echo call_user_func(array(new Test(), 'test'), 1);//输入后果为1
echo call_user_func_array(array(new Test(), 'test'), [1]);//输入后果为1

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理