call_user_func_array invoke function or method

call_user_func_array is a useful function to call a callback with an array of parameters. The callback could be user-defined function or a method in a class. Here is the summary of its application.

Syntax

mixed call_user_func_array ( callable $callback , array $param_arr )

call_user_func_array call function

function foobar($arg, $arg2) {
    echo __FUNCTION__, " got $arg and $arg2";
}
call_user_func_array("foobar", array("one", "two"));

call_user_func_array call Class method

class foo {
    function bar($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2";
    }
}

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

call_user_func_array call static method using namespace

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'));
//or
// As of PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

call_user_func_array call public method using namespace

namespace Foobar;

class Foo {
    public function test($name) {
        print "Hello {$name}!\n";
    }
}

// As of PHP 5.3.0

call_user_func_array(new __NAMESPACE__ .'\Foo\test', array('Hannes'));
//or
// As of PHP 5.3.0
call_user_func_array(array(new __NAMESPACE__ .'\Foo', 'test'), array('Philip'));

Leave a Reply

Your email address will not be published. Required fields are marked *