文档库 最新最全的文档下载
当前位置:文档库 › php call_user_func和call_user_func_array的区别

php call_user_func和call_user_func_array的区别

php call_user_func和call_user_func_array的区别
php call_user_func和call_user_func_array的区别

Php call_user_func和call_user_func_array的区别

call_user_func和call_user_func_array是我们可能是在实际项目中经常会用到的两个函数,顾名思义,就是调用用户自定义的函数。

call_user_func(string $function_name,string $argument);

第一个参数的函数的名称,第二个是函数的参数;返回结果是bool类型,调用函数成功返回true,调用失败返回false

Example:

function name($name){

echo '我的名字是:' . $name;

}

call_user_func("name","李四");//输出我的名字是:李四

?>

调用类的内部的函数的时候,第一个参数是数组类型array(类名或者类对象,”函数名”),第二个依然是函数的参数

Example:

class Test

{

public function echoName($name){

echo '我的名字是:' . $name;

}

public function __construct(){

call_user_func(array($this,"echoName"),"张三");

call_user_func(array("Test","echoName"),"张三");

}

}

$file = new Test();

call_user_func(array($file,"echoName"),"张三");

call_user_func(array("Test","echoName"),"张三");

call_user_func_array 函数和call_user_func 很相似,只是使用了数组的传递参数形式,让参数的结构更清晰: 返回结果是bool类型,调用函数成功返回true,调用失败返回false

Example:

function name($name){

echo '我的名字是:' . $name;

}

call_user_func_array("name",array("李四"));//输出我的名字是:李四

调用类的内部方法和call_user_func 函数的调用方式一样,都是使用了数组的形式来调用。

Example:

class Test

{

public function echoName($name){

echo '我的名字是:' . $name;

}

public function __construct(){

call_user_func_array(array($this,"echoName"),array("张三"));

call_user_func_array(array("Test","echoName"),array("张三"));

}

}

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

$file = new Test();

call_user_func_array(array($file,"echoName"), array("张三"));

call_user_func_array(array("Test","echoName"), array("张三"));

相关文档