我想做一些像动作处理程序。我不知道它应该是什么样的。但我开始做这样的事情:
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();
,但我不知道该怎么做。
答案 0 :(得分:2)
我不确定我是否会在一个真实的项目中做这样的事情,但你可以按照你所描述的方式使它工作:
$handler = $row['handler'];
if (function_exists ($handler)) {
$handler ();
}
答案 1 :(得分:0)
您可以致电以下
$functionName = $row['handler'];
$functionName();
替代是
call_user_func($functionName);