php使用字符串调用函数

时间:2015-06-23 15:36:29

标签: php

我有一个名为test的函数正在被调用,只是回声“测试”让这个问题保持简单。

test();

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

但是我想尝试使函数动态化,如果这是正确的单词选择。

我有一个数据库中的记录列表,并且根据每条记录,我可能想要一个不同的函数来处理该记录,然后想法是在数据库中有一个字段,它将是function_name,然后我使用它一些如何调用该函数的字段。

喜欢这个

test();

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

我能想到解决这个问题的唯一方法是使用开关/外壳,但这会引起我的其他问题。

2 个答案:

答案 0 :(得分:1)

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

<?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();
}

答案 1 :(得分:0)

使用闭包:

<?php

$funcName = 'test';

$$funcName = function ()
{
    echo 'Do something';
};

$test(); // 'Do something'
$$funcName(); // 'Do something'