PHP调用函数
如何将函数作为变量传递,然后使用该变量调用它 e、 gPHP调用函数,php,functional-programming,Php,Functional Programming,如何将函数作为变量传递,然后使用该变量调用它 e、 g 您只需将函数名作为字符串传递即可 但是请注意,echo不是一个函数,因此这不适用于echo 编辑:以下是一个示例: function my_function($x) { echo $x; } function test($function) { $function("Test"); } test("my_function"); 你已经走上了正确的道路。但是echo是一种语言结构,而不是一种函数: 变量函数不能与诸如echo
您只需将函数名作为字符串传递即可 但是请注意,
echo
不是一个函数,因此这不适用于echo
编辑:以下是一个示例:
function my_function($x)
{
echo $x;
}
function test($function)
{
$function("Test");
}
test("my_function");
你已经走上了正确的道路。但是
echo
是一种语言结构,而不是一种函数:
变量函数不能与诸如echo()
,print()
,unset()
,isset()
,empty()
,include()
,require()
等语言构造一起使用。利用包装函数将这些结构中的任何一个用作变量函数
除此之外,函数将通过其标识符传递:
test('function_name');
或者,在使用的情况下,根据其价值:
test(function() { /* … */ });
您还应该查看可用于测试给定参数是否可调用的函数。对于类似substr的函数,您可以调用值为“substr”的字符串: Eval也可用于:
$func = "substr";
$result = eval("return $func(\$string, 0, 10);");
使用这两种工具时,请小心操作。如果$func来自用户输入,则恶意用户可以执行任何函数。由于PHP不太关心(发出警告)您是否指定了其他参数,例如,有人可以使用等于“rm-rf/”的$string执行“exec”
echo不能这样做,因为它不是一个函数;它是一种语言结构,像“如果”或“当”
$func = "substr";
$result = $func($string, 0, 10);
$func = "substr";
$result = eval("return $func(\$string, 0, 10);");