php使用字符串调用函数


php calling a function using a string

下面有一个被调用的函数test,对于这个问题,只需要echos"test"保持简单。

test();
function test() {
    echo "do something";
}

然而,如果这是正确的措辞,我想尝试使函数动态。

我在数据库中有一个记录列表,根据每个记录,我可能想要一个不同的函数来处理该记录,然后在数据库中创建一个字段function_name,然后使用该字段来调用该函数。

像这个

test();
$function_name = "test";
function $function_name() {
    echo "do something here";
}

我唯一能想到的解决办法是使用switch/case,但这会给我带来其他问题。

函数必须用特定的名称定义,但您可以使用包含其名称的变量来调用它,如下所示:-

<?php
function name() {
    echo "name";
}
$func_name = 'name';
// its always a good idea to check that function 
// actually exists before calling it.
if (function_exists($func_name)) {
    $func_name();
}

为此使用闭包:

<?php
$funcName = 'test';
$$funcName = function ()
{
    echo 'Do something';
};
$test(); // 'Do something'
$$funcName(); // 'Do something'