根据变量名称从请求中获取参数

时间:2013-10-29 12:42:19

标签: php

我想要这样的事情:

我已向服务器发送包含my_par = test的请求。

我可以像$ my_par = $ _REQUEST [“my_par”]那样得到它。这是正常的方式。

但我想如果我的变量名与请求名匹配,那么它会自动获取该参数的值。

所以我想要一个像 set_variable_value(array($ my_par,$ my_par2),$ _ REQUEST)这样的函数,然后它应该像这样设置变量的值:

$my_par = $_REQUEST["my_par"];
$my_par2 = $_REQUEST["my_par2"];

是否有可能在PHP中实现这样的目标?

或以简单的方式

如果我发送这样的请求my_par1 = test& my_par2 = test2,我想通过在其名称的开头添加$来访问它们,如下所示:

$ my_par1和$ my_par2

2 个答案:

答案 0 :(得分:0)

我不知道您为什么要这样做,但这可以通过parse_str()来实现:

$query =  http_build_query($_REQUEST);
parse_str($query);

所以,如果请求如下:

test.php?foo=test1&bar=test2&baz=test3

...你可以使用他们的查询参数名称来访问变量,如下所示:

echo $foo;

会输出:

test1

使用上面的代码,您可能会意外覆盖已定义的变量。如果使用parse_str()的第二个参数,则可以将变量存储在数组中,而不是:

parse_str($query, $params);

这样,您就不会在当前范围内设置/覆盖变量。

答案 1 :(得分:0)

提取$_POST数组,如下所示:

extract($_POST);

这将为您提供以$_POST的键命名的变量,以及相应的值。