1

我正在制作一种在网页部分中工作的 CMS 系统,并将每个部分作为不同的条目存储到 MySQL 数据库中的表中。当用户第一次设置页面时,PHP 脚本会调用一个函数addsection($name, $content)来将该部分添加到数据库中。但是,为了使该系统更加灵活,因此它不使用静态部分,我希望能够将函数更改为addsection($name, function),您可以在其中为参数提供函数function。有什么方法可以将此函数或函数名存储在数据库中,然后在代码需要获取部分文本时调用它?如果没有,我能做些什么呢?我用来获取该部分内容的函数很简单section($name)
另外,如果在不使用文件或任何东西之前没有查看过当前页面,是否有人知道重定向到另一个页面的简单方法?

4

1 回答 1

2

您可以使用变量函数(http://php.net/manual/en/functions.variable-functions.php)。

$r = mysql_query("SELECT method FROM method_table WHERE id = 2");
$row = mysql_fetch_assoc($r);
$func = $row['method'];
$func($parameter); //will execute whatever method you stored in the `method` field

通过这种方式,您可以执行名称存储在数据库中的函数。如果你想在一个对象的上下文中执行它(因此是method),你可以这样做: $this->$func($parameter);

于 2013-10-11T21:45:28.777 回答