我正在制作一种 CMS 系统,该系统在网页的各个部分中工作,并将每个部分作为不同的条目存储到 MySQL 数据库的表中。当用户首次设置页面时,PHP 脚本会调用一个名为 addsection($name, $content)
的函数,将该部分添加到数据库中。但是,为了使这个系统更加灵活,因此它不使用静态部分,我希望能够将函数更改为 addsection($name, function)
,您可以在其中给出一个函数对于参数function
。有什么方法可以将此函数或函数名称存储在数据库中,然后在代码需要获取部分文本时调用它吗?如果没有,我能做什么呢?我用来获取该部分内容的函数就是 section($name)
。
另外,如果之前没有查看过当前页面且不使用文件或任何内容,是否有人知道重定向到另一个页面的简单方法?
最佳答案
您可以使用变量函数 ( 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
通过这种方式,您可以执行名称存储在数据库中的函数。如果你想在对象的上下文中执行它(因此是方法
),你可以这样做:$this->$func($parameter);
关于php - 将函数名称存储在数据库中然后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020129/