假设我有一个在启动时执行类似操作的代码:
if (!isset($_GLOBALS['something'])){
getAndWriteToGlobals($x, $y)
}
这显然可以getAndWriteToGlobals
正常工作,它只做很少的事情并将另一个数据放入$_GLOBALS['something'][$ee] = $value ->
其中正常工作(我打印了整个$_GLOBALS['something']
),print_r
并且一切都在那里。
我遇到的问题是当程序从这个函数返回时,我尝试在另一个变量中获取数组,像这样
$var = $_GLOBALS['something'];
在这种情况下, $var 在 printup 中不包含任何内容(甚至不包含 null),count($var)
返回0
. 我在这里想念什么?
谢谢!
编辑:
function getAndWriteToGlobals($hostname,$community,$oidIndex, $oidValue) {
$indexes = snmprealwalk($hostname, $community, $oidIndex);
$values = snmprealwalk($hostname, $community, $oidValue);
if (empty($indexes)) {
print "Empty indexes array!\n";
}
else{
$c=0;
$a = array();
foreach($indexes as $key => $indxVal){
if (strpos($indxVal,'word') !== false) {
preg_match("/[0-9]+$/", $key, $matches);
$ind = $matches[0];
$a[$c] = $ind;
$c++;
}
}
$i=0;
foreach($values as $key => $value){
if (strpos($key, $a[$i]) !== false) {
preg_match("/[\+\-0-9]+$/", $value, $matches);
$value = $matches[0];
$_GLOBALS['something'][$a[$i]] = $value;
$i++;
}
}