call_user_func

(PHP 4, PHP 5, PHP 7)

call_user_func�ѵ�һ��������Ϊ�ص���������

˵��

call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed

��һ������ callback �DZ����õĻص���������������ǻص������IJ�����

����

callback

�������õĻص�������callable����

parameter

0�������ϵIJ�����������ص�������

Note:

��ע�⣬����call_user_func()�IJ�������Ϊ���ô��ݡ�

Example #1 call_user_func() �IJ����

<?php
error_reporting
(E_ALL);
function 
increment(&$var)
{
    
$var++;
}

$a 0;
call_user_func('increment'$a);
echo 
$a."\n";

call_user_func_array('increment', array(&$a)); // You can use this instead before PHP 5.3
echo $a."\n";
?>

�������̻������

0
1

����ֵ

���ػص������ķ���ֵ��

������־

�汾 ˵��
5.3.0 �������������Ĺؼ��ֵĽ���������ǿ���ڴ�֮ǰ��ʹ������ð��������һ����������һ��������������Ϊ��������Ϊ�ص������Ļ������ᷢ��һ��E_STRICT�ľ��棬��Ϊ�������IJ�������Ϊ��̬������

����

Example #2 call_user_func() ������

<?php
function barber($type)
{
    echo 
"You wanted a $type haircut, no problem\n";
}
call_user_func('barber'"mushroom");
call_user_func('barber'"shave");
?>

�������̻������

You wanted a mushroom haircut, no problem
You wanted a shave haircut, no problem

Example #3 call_user_func() �����ռ��ʹ��

<?php

namespace Foobar;

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

call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo''test')); // As of PHP 5.3.0

?>

�������̻������

Hello world!
Hello world!

Example #4 ��call_user_func()������һ��������ķ���

<?php

class myclass {
    static function 
say_hello()
    {
        echo 
"Hello!\n";
    }
}

$classname "myclass";

call_user_func(array($classname'say_hello'));
call_user_func($classname .'::say_hello'); // As of 5.2.3

$myobject = new myclass();

call_user_func(array($myobject'say_hello'));

?>

�������̻������

Hello!
Hello!
Hello!

Example #5 �������ĺ�����Ϊ�ص�����call_user_func()

<?php
call_user_func
(function($arg) { print "[$arg]\n"; }, 'test'); /* As of PHP 5.3.0 */
?>

�������̻������

[test]

ע��

Note:

�ں�����ע���ж���ص�����ʱ(��ʹ�� call_user_func() �� call_user_func_array())������ǰһ���ص�����δ������쳣�����Ľ����ٱ����á�

�μ�