起動時に次のようなことを行うコードがあるとします。
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++;
}
}