call_user_func_array

call_user_func_array


(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数


mixed call_user_func_array ( callable $callback , array $param_arr )

把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。


callback

被调用的回调函数。


param_arr

要被传入回调函数的数组,这个数组得是索引数组。

返回值 

返回回调函数的结果。如果出错的话就返回FALSE


范例 


Example #1 call_user_func_array()例子


<?php

function foobar($arg, $arg2) {

    echo __FUNCTION__, " got $arg and $arg2\n";

}

class foo {

    function bar($arg, $arg2) {

        echo __METHOD__, " got $arg and $arg2\n";

    }

}



// Call the foobar() function with 2 arguments

call_user_func_array("foobar", array("one", "two"));


// Call the $foo->bar() method with 2 arguments

$foo = new foo;

call_user_func_array(array($foo, "bar"), array("three", "four"));

?>

以上例程的输出类似于:


foobar got one and two

foo::bar got three and four

Example #2 call_user_func_array()使用命名空间的情况


<?php


namespace Foobar;


class Foo {

    static public function test($name) {

        print "Hello {$name}!\n";

    }

}


// As of PHP 5.3.0

call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));


// As of PHP 5.3.0

call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));


?>

以上例程的输出类似于:


Hello Hannes!

Hello Philip!

Example #3 把完整的函数作为回调传入call_user_func_array()


<?php


$func = function($arg1, $arg2) {

    return $arg1 * $arg2;

};


var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.3.0 */


?>

以上例程会输出:


int(8)


转载于:https://my.oschina.net/BearCatYN/blog/511485

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值