call_user_func ( callback $function [, mixed $parameter [, mixed $... ]]
)
调用第一个参数所提供的用户自定义的函数。
返回值:返回调用函数的结果,或FALSE。
example :
-
<?php
-
function eat($fruit)
-
{
-
echo "You want to eat $fruit, no problem";
-
}
-
call_user_func(‘eat‘, "apple");
-
call_user_func(‘eat‘, "orange");
-
?>
调用类的内部方法:
-
<?php
-
class myclass {
-
function say_hello($name)
-
{
-
echo "Hello!$name";
-
}
-
}
-
-
$classname = "myclass";
-
-
-
call_user_func(array($classname, ‘say_hello‘), ‘dain_sun‘);
-
-
-
-
?>
call_user_func_array 函数和 call_user_func 很相似,只是 使 用了数组 的传递参数形式,让参数的结构更清晰:
call_user_func_array ( callback $function , array $param_arr )
调用用户定义的函数,参数为数组形式。
返回值:返回调用函数的结果,或FALSE。
-
<?php
-
-
function debug($var, $val)
-
{
-
echo "variable: $var <br> value: $val <br>";
-
echo "<hr>";
-
}
-
-
-
$host = $_SERVER["SERVER_NAME"];
-
$file = $_SERVER["PHP_SELF"];
-
-
call_user_func_array(‘debug‘, array("host", $host));
-
call_user_func_array(‘debug‘, array("file", $file));
-
-
-
?>
调用类的内部方法和 call_user_func 函数的调用方式一样,都是使用了数组的形式来调用。
exmaple:
-
<?php
-
-
class test
-
{
-
function debug($var, $val)
-
{
-
echo "variable: $var <br> value: $val <br>";
-
echo "<hr>";
-
}
-
}
-
-
$host = $_SERVER["SERVER_NAME"];
-
$file = $_SERVER["PHP_SELF"];
-
-
call_user_func_array(array(‘test‘, ‘debug‘), array("host", $host));
-
call_user_func_array(array(‘test‘, ‘debug‘), array("file", $file));
-
-
?>
注:call_user_func 函数和call_user_func_array函数都支持引用。
-
<?php
-
function increment(&$var)
-
{
-
$var++;
-
}
-
-
$a = 0;
-
call_user_func(‘increment‘, $a);
-
echo $a;
-
-
call_user_func_array(‘increment‘, array(&$a));
-
echo $a;
-
?>
php学习之道:call_user_func和call_user_func_array的用法,布布扣,bubuko.com
php学习之道:call_user_func和call_user_func_array的用法
原文:http://blog.csdn.net/u011511429/article/details/36891765