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"); //print: You want to eat apple, no problem;
call_user_func('eat', "orange"); //print: You want to eat orange,no problem;
?>
调用类的内部方法:
<?php
class myclass {
function say_hello($name)
{
echo "Hello!$name";
}
}
$classname = "myclass";
//调用类内部的函数需要使用数组方式 array(类名,方法名)
call_user_func(array($classname, 'say_hello'), 'dain_sun');
//print 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; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>
分享到:
相关推荐
总结来说,`call_user_func` 和 `call_user_func_array` 提供了一种动态调用函数和类方法的能力,它们使得在编程时能更加灵活地处理函数调用,特别是在处理未知或动态生成的函数名和参数列表时。它们是 PHP 中实现元...
call_user_func_array call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数 mixed call_user_func_array ( callable $callback , array $param_arr ) 把第一个参数作为回调函数(callback)...
在PHP编程语言中,`call_user_func` 和 `call_user_func_array` 是两个非常重要的函数,它们用于动态地调用用户定义的函数或方法。这两个函数允许开发者在运行时根据需求执行不同的操作,增强了代码的灵活性和可扩展...
call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:第一种是调用孤独的函数:复制代码 代码如下:<?phpfunction funa($b,$c){ echo $b; echo $c;}call_user_func(‘funa’, “111”,”...
}//调用test方法,array(“asp”, ‘php’)对应相应的参数call_user_func_array(‘test’, array(“asp”, ‘php’)); 二、通过类调用类中的方法复制代码 代码如下:class test2{function phpSay($a, $b) {echo ‘测试...
在PHP编程语言中,`call_user_func` 和 `call_user_func_array` 是两个非常重要的函数,它们用于在运行时调用用户定义的函数或者方法。这两个函数为动态执行代码提供了便利,是PHP中的回调函数机制的重要组成部分。...
这里,我们传入了一个数组,其中包含了类名 `TestClass` 和方法名 `write`,`call_user_func_array()` 将会调用 `TestClass` 类的 `write` 方法,并传入字符串 `'NO.1 www.chhua.com'` 作为参数。 `call_user_func_...
最后,使用call_user_func或call_user_func_array时要确保传入的回调是有效的,并且当传入对象的方法时,对象实例必须已经创建。在使用call_user_func来调用方法时,如果方法不存在,或者传入的参数不正确,将会引发...
call_user_func 和通常被称为“慢”。 在某个时候,我需要知道这会对涉及大量可调用呼叫的流程有多大影响。问题Callable可以有多种形式,可以是字符串,lambda数组或Closure。 如果要泛型调用Callable,则简单的方法...
在PHP编程语言中,`call_user_func()` 和 `call_user_func_array()` 是两个非常重要的回调函数,它们允许程序员以动态的方式调用其他函数或方法。这两个函数为代码提供了更大的灵活性,尤其是在处理回调、事件驱动...