我想知道是否有一种快速方法可以循环遍历$_REQUEST
并通过在函数中运行它们来更改所有提交的变量。
例如,我说$_REQUEST['a']
的值为stuff
,$_REQUEST['b']
的值为more stuff
。我想重写整个$_REQUEST[]
数组,使$_REQUEST['a']
的值变为myfunction('stuff')
,$_REQUEST['b']
的值变为myfunction('more stuff')
。我不知道传递给$_REQUEST.
的所有元素的名称
答案 0 :(得分:1)
您可以使用array_walk
函数并传递数组。例如:
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2<br />\n";
}
echo "Before ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk($fruits, 'test_print');
?>
同样,对于您的问题,您可以这样做:
function stuff() {
///
}
现在以这种方式走你的$_REQUEST
功能:
array_walk($_REQUEST, 'stuff', 'fruit');
答案 1 :(得分:1)
就个人而言,我对修改特殊 $_REQUEST
数组感觉不太好,所以我会创建另一个带有修改值的数组 - 以防万一:
$requestProcessed = array_map('myfunction', $_REQUEST);
通过这种方式,您可以获得修改后的值和仍然可以访问原始值(如果您碰巧需要它们)。
如果您可以修改$_REQUEST
数组本身,那么array_walk
会更好(正如Praveen Kumar所建议的那样)。
答案 2 :(得分:0)
首先,你正在做的事情似乎是坏消息,因为REQUEST存储了各种各样的东西,比如$ _COOKIES,$ _POST和$ _GET变量等等,但是如果你真的想这样做,那么你可以做它是这样的:
foreach ($_REQUEST as $key => $val) {
$_REQUEST[$key] = myFunction($val);
}