PHP $ _GET数组嵌套参数不起作用

时间:2012-10-26 15:19:57

标签: php arrays apache parameters

我在使用LAMP-Stack的debian服务器上遇到了奇怪的行为。

这个简单的测试解释了我的问题: 这是我的test.php脚本:

<?php
  $params = $_GET;
  print_r($params);
?>

如果我发出网址:http://localhost/test.php?arr[a]=1&arr[b]=2&arr[c]=3&test=xyz 我希望服务器返回:

    
Array
(
    [arr] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
        )
    [test] => xyz
)

但我只得到:

Array
(
    [arr] => Array
        (
            [a] => 1
        )
    [test] => xyz
)

我检查了php.ini,apache配置等等。我没有clou为什么没有正确处理参数。 即使我的

$_SERVER[REQUEST_URI]
变量显示正确的参数,但它们也不会被处理。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你一定做错了什么:

当我致电www.mysite.com/test.php?arr[a]=1&arr[b]=2&arr[c]=3&test=xyz

并执行print_r($_GET);

我得到了

Array ( [arr] => Array ( [a] => 1 [b] => 2 [c] => 3 ) [test] => xyz )

<强>更新

var_dump的输出:

array(2) { 
  ["arr"]=> array(3) { ["a"]=> string(1) "1" ["b"]=> string(1) "2" ["c"]=> string(1) "3" }
  ["test"]=> string(3) "xyz" 
}

答案 1 :(得分:0)

我终于想出了问题:

这是SUSE Enterprise Linux上的PHP 5.3.8中的错误。 我让管理员升级到PHP 5.3.17,这种不当行为消失了。