php - 将函数名称存储在数据库中然后执行

标签 php mysql function content-management-system

我正在制作一种 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/

相关文章:

php - IF 语句只显示 1 个变量而不考虑结果

javascript - 禁用提交,但首先提交表单

mysql - Ruby gem 版本兼容性问题

php - INSERT PHP 语句不起作用

php序列化数据回javascript

php - 尝试将表单数据添加到 MYSQL 数据库中

sql - 在 T-SQL 中创建快捷函数

从另一个源文件中调用 C 函数

C++ 类变量返回乱码

php - 如何使用 pdfcrowd HTML to PDF API for PHP 设置背景水印图像?