php call_user_func() 和 call_user_func_array() 总结

  • call_user_func_array() 详解:

       1).使用call_user_func_array() 调用类内部的方法:

<?php
class MainController{
	public function getJsonEncode($param1,$param2){
		return "param1 josn code:=".json_encode($param1)."\nparam2 json code:=".json_encode($param2);
	}
	public function actionTestCallUserFuncArray(){
		//调用同一个类中的方法
		$param1 = array("hobby" => "Clark love Michelle","wish" => "Michelle love Clark");
		$param2 = "Clark like to travel around the world!";
		//调用类的成员方法:
		// call_user_func_array($funcClassAndName,$paramArray);
		// @param $funcClassAndName: array('className','funcName');
		// @param $paramArray: array(需要传递的参数);
		$str = call_user_func_array(array('MainController','getJsonEncode'),array($param1,$param2));
		echo $str;
	}
}

  当用call_user_func_array() 调用类的成员函数时,它的参数是两个数组,第一个数组的内容分别是需要调用的函数所在的类名和所要调用的函数名,第二个数组是需要向所调用的函数传递的参数列表;

  上述函数输出结果为:

param1 josn code:={"hobby":"Clark love Michelle","wish":"Michelle love Clark"}
param2 json code:="Clark like to travel around the world!"

    2) 使用call_user_func_array() 调用普通方法:

<?php
function getJsonEncode($param1,$param2){
	return "param1 josn code:=".json_encode($param1)."\nparam2 json code:=".json_encode($param2);
}

$param1 = array("hobby" => "Clark love Michelle","wish" => "Michelle love Clark");
$param2 = "Clark like to travel around the world!";

//调用普通的方法:
// call_user_func_array($funcName,$paramArray);
//@param $funcName:需要调用的函数名;
//@param $paramArray: array(需要传递给函数的参数列表)
$str1 = call_user_func_array('getJsonEncode',array($param1,$param2));
echo $str1;

   当用call_user_func_array() 调用普通函数时,它的参数是一个字符串和一个数组,第一个字符串的内容是需要调用的函数的名称,第二个数组是需要向所调用的函数传递的参数列表;

  上述函数输出结果为:

param1 josn code:={"hobby":"Clark love Michelle","wish":"Michelle love Clark"}
param2 json code:="Clark like to travel around the world!"

  • call_user_func() 详解:

      1).   使用call_user_func() 调用类内部的方法:

<?php
class MainController{

	public function getJsonEncode($param1,$param2){
		return "param1 josn code:=".json_encode($param1)."\nparam2 json code:=".json_encode($param2);
	}

	public function actionTestCallUserFuncArray(){
		$param1 = array("hobby" => "Clark love Michelle","wish" => "Michelle love Clark");
		$param2 = "Clark like to travel around the world!";

		//调用类的成员方法:
		// call_user_func($funcClassAndName,$param1,$param2);
		// @param $funcClassAndName: array('className','funcName');
		// @param $param1,$param2  需要传递的参数
		$str2 = call_user_func(array('MainController','getJsonEncode'),$param1,$param2);
		echo $str2;
	}
}

当用call_user_func() 调用类的成员函数时,它的第一个参数是数组,其内容分别是需要调用的函数所在的类名和所要调用的函数名,其余的参数是需要向所调用的函数传递的参数列表;

  上述函数输出结果为:

param1 josn code:={"hobby":"Clark love Michelle","wish":"Michelle love Clark"}
param2 json code:="Clark like to travel around the world!"

   2).使用call_user_func 调用普通方法:

<?php
function getJsonEncode($param1,$param2){
	return "param1 josn code:=".json_encode($param1)."<br>\nparam2 json code:=".json_encode($param2);
}

$param1 = array("hobby" => "Clark love Michelle","wish" => "Michelle love Clark");
$param2 = "Clark like to travel around the world!";

//调用普通的方法:
// call_user_func($funcName,$param1,$param2...);
//@param $funcName:需要调用的函数名;
//@param $param1,$param2...需要传递给函数的参数列表
$str1 = call_user_func('getJsonEncode',$param1,$param2);
echo $str1;

   当用call_user_func() 调用普通函数时,它的第一个参数是字符串,字符串的内容是需要调用的函数的名称,其他的参数是需要向所调用的函数传递的参数列表;

  上述函数输出结果为:

param1 josn code:={"hobby":"Clark love Michelle","wish":"Michelle love Clark"}
param2 json code:="Clark like to travel around the world!"


你可能感兴趣的:(php call_user_func() 和 call_user_func_array() 总结)