是否存在PHP的配置选项或Web服务器上的任何内容,以允许或不包含如下所示的数组:
$i['addme']["A".$temp[1]] = $v;
出于某种原因,这段代码正在Netfirms服务器上工作,现在我改为VPS主机而且它没有保留价值......
知道为什么吗?
=============
确切代码:
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
}
}
$temp
数组的内容时,我会看到我的数据$v
数据分配给$i['addme']
之后,我检查它并将其清空。换句话说,在这个脚本中,当我检查$ v字符串时,它会显示数据,但是当我回显$ i字符串时,它是空的......
想法?
=============
我刚刚测试了$ii
(2个字母变量)而不是$i
并且它有效...为什么?
旁注:我仍然想解决问题,我不想用我的20 000行代码来改变我所有的1个字母数组......
=============
奇怪的是,当我将$i = array();
放在脚本之前时,它可以正常工作。
为什么?
答案 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**