23
2020
02

WordPress do_action()和do_action_ref_array()区别

WordPress do_action() 和 do_action_ref_array() 区别,其实就是 PHP 中 call_user_func 函数 和 call_user_func_array 函数的区别。

它们的第一个参数都是回调函数,do_action() 还可以有多个参数,它们都是回调函数的参数,do_action_ref_array() 只有两个参数,第二个参数是要被传入回调函数的数组。

如果传递一个数组给 do_action_ref_array(),数组的每个元素的值都会当做一个参数传递给回调函数,数组的 key 回调掉。

如果传递一个数组给 do_action(),整个数组会当做一个参数传递给回调函数,数字的 key 还会保留住。

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

function test_callback(){

$args = func_get_args();

$num = func_num_args();

echo $num."个参数:";

echo "

<pre>";

print_r($args);

echo "</pre>

";

}

然后我们分别使用 do_action() 函数 和 do_action_ref_array() 函数进行回调:

$args = array (

'foo' => 'bar',

'hello' => 'world',

0 => 123

);

do_action('test_callback', $args);

do_action_ref_array('test_callback', $args);

最后输出结果:

1 个参数:

Array

(

    [0] => Array

        (

            [foo] => bar

            [hello] => world

            [0] => 123

        )

)

3个参数:

Array

(

    [0] => bar

    [1] => world

    [2] => 123

)

原文链接:https://www.qiquanji.com/post/8492.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

gzh

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。