服务器配置/ PHP导致1个字母的PHP数组失败?

时间:2012-05-02 05:03:55

标签: php arrays

是否存在PHP的配置选项或Web服务器上的任何内容,以允许或不包含如下所示的数组:

$i['addme']["A".$temp[1]] = $v;

出于某种原因,这段代码正在Netfirms服务器上工作,现在我改为VPS主机而且它没有保留价值......

知道为什么吗?

=============

编辑1:更多详情如下:

确切代码:

foreach ($_POST as $k => $v) {
    $temp = explode("_", $k);//_p($temp);
    if ($temp[0] == "ATTRIBUT") {
        $i['addme']["A".$temp[1]] = $v;

        // debugging test below
        echo $v;  // THIS WORKS
        echo $i['addme']["A".$temp[1]]; // EMPTY DATA
    }
}
  • 当我打印POST数组的内容时,我会看到我的数据。
  • 当我打印$temp数组的内容时,我会看到我的数据
  • 在将$v数据分配给$i['addme']之后,我检查它并将其清空。

换句话说,在这个脚本中,当我检查$ v字符串时,它会显示数据,但是当我回显$ i字符串时,它是空的......

想法?

=============

编辑2:

我刚刚测试了$ii(2个字母变量)而不是$i并且它有效...为什么?

旁注:我仍然想解决问题,我不想用我的20 000行代码来改变我所有的1个字母数组......

=============

编辑3:

奇怪的是,当我将$i = array();放在脚本之前时,它可以正常工作。

为什么?

3 个答案:

答案 0 :(得分:2)

我认为作者间接指出答案:他说“如果我使用$ i,我有问题,但如果我使用$ ii,那就没关系”。我之前使用的是其他东西吗? $ i被定义为数组并在首次使用前初始化?作者提供的代码片段是从更高级别的任何其他控制结构调用的吗?

答案 1 :(得分:0)

首先看一下所有的变量,它们包含“ATTRIBUT_XXX”,其中XXX是一些值。因为你的帖子字段可能只包含ATTRIBUT_或ATTRIBUT,并且它没有第二个值。

您的错误报告可能会被禁用或松散,因为它不会向您返回任何警告

答案 2 :(得分:0)

尝试在您的服务器中运行此代码段并告知详细信息

$_POST = array('ATTRIBUT'=>'hello','ATTRIBUT_efg'=>'how','ATTRIBUT_xyz'=>'are you');
$i = array();
foreach ($_POST as $k => $v) {
    $temp = explode("_", $k);//_p($temp);
    if ($temp[0] == "ATTRIBUT") {
        $i['addme']["A".$temp[1]] = $v;

        // debugging test below
       // echo $v;  // THIS WORKS
        echo $i['addme']["A".$temp[1]]; // EMPTY DATA
    }
}
print_r($i);**strong text**