-1

是否有诸如 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();脚本之前,它就起作用了。

为什么?

4

3 回答 3

2

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

于 2012-05-02T06:21:43.360 回答
0

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

您的错误报告可能被禁用或松散,就像它没有向您返回任何警告一样

于 2012-05-02T05:37:47.883 回答
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**
于 2012-05-02T06:23:12.403 回答