PHP动态函数调用
我不太确定我该如何问这个问题,但我会尽量弄清楚: 我有document.php和doc2.php(例如) 在第一个例子中,我想把一个函数放在一个变量中,这样我就可以在第一个例子中说:PHP动态函数调用,php,Php,我不太确定我该如何问这个问题,但我会尽量弄清楚: 我有document.php和doc2.php(例如) 在第一个例子中,我想把一个函数放在一个变量中,这样我就可以在第一个例子中说: $_SESSION['action'] = 'exampleFunction($params)'; 在第二份文件中,我想说: $params = 'test'; $_SESSION['action']; 然后,根据用户在上一文档中所做的操作,我可以启动正确的函数。您可以使用“可变函数” 或者
$_SESSION['action'] = 'exampleFunction($params)';
在第二份文件中,我想说:
$params = 'test';
$_SESSION['action'];
然后,根据用户在上一文档中所做的操作,我可以启动正确的函数。您可以使用“可变函数”
或者您可以使用创建函数()
您可以使用eval功能:
但我强烈反对这样做,因为这是非常不安全的这听起来更像是一个设计问题。我试着想象一种情况,你需要在会话中存储一个函数。你能详细说明一下你想做什么吗?听起来像是一个问题,有一个操作到函数的映射,或者需要一个文件,或者…这真的取决于情况。同意,这听起来像是应该用其他方式做的事。听起来你可能想研究一下。这正是我需要的,非常感谢你,你为我节省了很多时间!我不知道,PHP太棒了eheh@Rafael在这种情况下,除了eval
,还有许多更好、更安全的替代方法。@DC!,如果它是应授予的,则它是有效的解决方案。:-)我放弃投票是因为我个人厌倦了听“eval是不安全的/危险的,泄气的…”的故事,而没有任何有效的解释。Eval是对代码作为字符串的求值;这意味着,如果您在编写代码时根本没有接触eval,那么您也在使用eval,唯一的区别是当eval中的代码需要调试时缺乏舒适感。看在上帝的份上,调用require()或include()时会隐含eval()构造-因此,如果您是PHP程序员,那么您将定期使用eval()。
<?php
function foo() {
echo "In foo()<br />\n";
}
$func = 'foo';
$func('arg1');
eval($_SESSION['action']);