我的PHP项目上的一种动作处理程序?

时间:2014-06-18 17:02:29

标签: php mysql

我想做一些像动作处理程序。我不知道它应该是什么样的。但我开始做这样的事情:

MySQL:

CREATE TABLE `handlers` (
`name` varchar(65) NOT NULL default '',
`key` varchar(65) NOT NULL default '',
`handler` varchar(65) NOT NULL default ''
) TYPE=MyISAM ;

PHP:

if(isset($_GET['action']){
    $action = $_GET['action'];
    $sql = "SELECT * FROM handlers WHERE key = '.$action.'";
    $result = mysqli_query($con, $sql);
    $row = mysqli_fetch_array($result);
    // and here is the problem...
}

问题是,我不知道如何在PHP中执行字符串作为函数?

例如,如果handler中的字符串为Test,则代码应执行函数Test();。我在考虑eval();,但我不知道该怎么做。

2 个答案:

答案 0 :(得分:2)

我不确定我是否会在一个真实的项目中做这样的事情,但你可以按照你所描述的方式使它工作:

$handler = $row['handler'];
if (function_exists ($handler)) {
  $handler ();
}

答案 1 :(得分:0)

您可以致电以下

$functionName = $row['handler'];
$functionName();

替代是

call_user_func($functionName);