-3

我想知道是否有一种快速的方法可以$_REQUEST通过函数运行它们来循环并更改所有提交的变量。

例如,假设我被赋予了$_REQUEST['a']谁的价值stuff$_REQUEST['b']谁的价值more stuff。我想重写我的整个$_REQUEST[]数组,使得 become 的值和become$_REQUEST['a']myfunction('stuff')值。我知道传递给的每个元素的名称$_REQUEST['b']myfunction('more stuff')$_REQUEST.

4

3 回答 3

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');
于 2013-04-09T00:47:02.680 回答
1

就个人而言,我对修改特殊 $_REQUEST数组感觉不好,所以我会创建另一个具有修改值的数组 -以防万一

$requestProcessed = array_map('myfunction', $_REQUEST); 

这样,您可以获得修改后的值并且仍然可以访问原始值(如果您碰巧需要它们)。

如果您可以修改$_REQUEST数组本身,那么array_walk更好(正如 Praveen Kumar 所建议的那样)。

于 2013-04-09T00:52:17.447 回答
0

首先,您正在做的事情似乎是个坏消息,因为 REQUEST 存储了各种东西,例如 $_COOKIES、$_POST 和 $_GET 变量等等,但是如果您真的想这样做,那么您可以这样做:

foreach ($_REQUEST as $key => $val) {
    $_REQUEST[$key] = myFunction($val);
}
于 2013-04-09T00:48:04.910 回答