我正在研究一个以字符串作为参数的函数,我需要使用它来获取同名变量的值。
例如
如果传递了字符串$foo = "$_POST['email']";
,我需要检索$_POST['email']
的值并将其存储为$example
,以便$_POST['email'] == $example
返回true。没有可行的方法将值直接传递给函数(变量必须是动态的才能使函数值得)。
我确实考虑过使用变量变量,但它们不适用于超级全局变量,这将是我需要的值的主要来源。
基本上有一种方法可以将所需变量作为字符串获取变量的值(通常在超全局数组中)吗?
如果需要更多细节,请告诉我。
由于
答案 0 :(得分:4)
变量变量就是答案,但是如果你从$_POST
数组中取值后,为什么不将一个键传递给函数?
注意:这个功能仅供参考,我的实际建议如下。
function fetchFromPost($key) {
if(isset($_POST[$key]) {
return $_POST[$key];
} else {
return null; //or do whatever you want to do in case key is not found
}
}
事实上,filter_input()允许您选择输入数组,密钥和清单过滤器,它已经在您身边
答案 1 :(得分:2)
虽然我严重怀疑你应该使用它,但这是可能的。 如果您不知道字符串的来源,它允许PHP注入并使您的源代码非常容易 :
<?
function eval_expression($expression)
{
eval("\$temp = $expression;");
return $temp;
}
// Usage:
echo eval_expression("\$_GET['plop']");