加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP 中 call_user_func 函数 和 call_user_func_array 函数的区别

发布时间:2020-05-25 03:38:01 所属栏目:PHP 来源:互联网
导读:PHP 中call_user_func()函数 和call_user_func_array()函数都是回调函数,在写接口的时候经常会用到,但是他们有什么区别呢?它们的第一个参数都是被调用的回调函数,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_array(),数组的每个元素的值都会当做一个参数传递给回调函数,数组的 key 回调掉。
  • 如果传递一个数组给call_user_func(),整个数组会当做一个参数传递给回调函数,数字的 key 还会保留住。

比如有个如下的回调函数:

"; print_r($args); echo ""; }

  

然后我们分别使用call_user_func函数 和call_user_func_array函数进行回调:

'bar','hello' => 'world',0 => 123 );

call_user_func('test_callback',$args);
call_user_func_array('test_callback',$args);

  

最后输出结果:

Array ( [foo] => bar [hello] => world [0] => 123 ) )

3个参数:
Array
(
[0] => bar
[1] => world
[2] => 123
)

  

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读