Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何重写$\u请求中的所有变量?_Php_Arrays - Fatal编程技术网

Php 如何重写$\u请求中的所有变量?

Php 如何重写$\u请求中的所有变量?,php,arrays,Php,Arrays,我想知道是否有一种快速的方法来循环$\u REQUEST,并通过函数运行它们来更改所有提交的变量 例如,假设我被给予了$\u请求['a'],其值为stuff,$\u请求['b'],其值为更多stuff。我想重写整个$\u REQUEST[]数组,使$\u REQUEST['a']的值变成myfunction('stuff'),而$\u REQUEST['b']的值变成myfunction('more stuff')。我不知道传递给$\u请求的所有元素的名称。您可以使用array\u walk函数

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


例如,假设我被给予了
$\u请求['a']
,其值为
stuff
$\u请求['b']
,其值为
更多stuff
。我想重写整个
$\u REQUEST[]
数组,使
$\u REQUEST['a']
的值变成
myfunction('stuff')
,而
$\u REQUEST['b']
的值变成
myfunction('more stuff')
。我不知道传递给
$\u请求的所有元素的名称。

您可以使用
array\u 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');
?>
现在,通过以下方式遍历您的
$\u请求

array_walk($_REQUEST, 'stuff', 'fruit');

首先,您所做的似乎是个坏消息,因为请求存储了各种内容,例如$\u COOKIES、$\u POST和$\u GET variables等等,但是如果您真的想这样做,那么您可以这样做:

foreach ($_REQUEST as $key => $val) {
    $_REQUEST[$key] = myFunction($val);
}

就我个人而言,修改特殊的
$\u请求
数组感觉不太好,所以我会用修改后的值创建另一个数组-以防万一:

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


如果您可以修改
$\u请求
数组本身,那么
数组(walk
更好(如Praveen Kumar所建议的)

你可以用一个简单的for循环来解决这个问题。除非你告诉我你为什么要这样做,否则我不会帮你。我认为你这样做是错误的,解释一下你想做什么。我很确定,
$\u REQUEST
不会存储会话之类的东西,只存储用户提交的东西,比如
$\u COOKIE
$\u POST
。我想它甚至包括
$\u GET
是的,你是正确的,我总是被$_请求保存cookies而不是会话弄糊涂,它仍然非常不稳定,我会更正答案。当PHP有内置函数时,为什么不使用它呢!:PIt很难跟踪所有的PHP内置函数,有很多不同的命名约定:P
foreach ($_REQUEST as $key => $val) {
    $_REQUEST[$key] = myFunction($val);
}
$requestProcessed = array_map('myfunction', $_REQUEST);