【发布时间】:2015-08-03 15:39:44
【问题描述】:
我在 php.ini 中设置全局数组时遇到了一些问题。我从 $_POST 获得的数据直接来自我的数据库。我通过外部页面将其发送到 JSON 解码/等。 (那部分有效,所以我没有粘贴代码)。如果设置了数据,我只想这样做,然后我想在我的其余代码中获取该数组并用它做其他事情。我遇到的问题是 if 语句之外的数组为空。我似乎无法弄清楚为什么?如果我要在 if 语句中回显 var_dump,则值在 GLOBALS['Array']
function is_assoc($array) {
foreach (array_keys($array) as $k => $v) {
if ($k !== $v)
return true;
}
return false;
}
$GLOBALS['Array'] = array();
if (isset($_POST['data'])) {
$Data = $_POST['data'];
$decode = new JSONdecoder($Data);
$decode->decodeNew($Data);
$Data = $decode->decodedArray;
$decryptor = new DataDecryptor(base64_decode($_POST['key']), $_POST['tracking'], $hostName);
$decodedData = $decryptor->decrypt_arr($Data);
foreach($decodedData as $key => $val){
if(is_assoc($val)){
foreach($val as $key2 => $val2){
$theArray[$key2] = $val2;
}
}else{
$theArray[$key] = $val;
}
}
$GLOBALS['Array'] = $theArray;
}
echo var_Dump($Array);
【问题讨论】:
-
这段代码中没有设置$Array..
-
最后一行应该是
echo var_dump($GLOBALS['Array']); -
对不起,您指的是最后一条语句 echo var_Dump($Array); 吗?我认为当您在函数外部引用全局时,您只需将其称为变量的名称。
-
应该是
var_dump($GLOBALS['Array']);,而不是你现在拥有的。 -
谢谢,它成功了。但公平地说,我引用的网站具有误导性......w3schools.com/php/php_superglobals.asp