企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 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: ~~~ <?php 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("张三")); ~~~