print("<tr><td align=center id=specialtd>".$currentLUNs[$i]->lun_name." ( NAS )</td>\n");
// }
print("<td align=center id=specialtd>".$currentLUNs[$i]->lun_id."</td>\n");
print("<td align=center id=specialtd>".$currentLUNs[$i]->size."</td>\n");
unset($nas_info);
exec("/b_iscsi/bn_cli/report_nascapacity ".$currentLUNs[$i]->lun_name." -ha ".$host_index."", $nas_info);
if(preg_match("/capacity:\s([0-9]+)\sfree:\s([0-9]+)/", $nas_info[1], $matches))
{
$used_size = $currentLUNs[$i]->size - $matches[2];
print("<td align=center id=specialtd>".$used_size."</td>\n");
        print("<td align=center id=specialtd>".$matches[2]."</td>\n");
}
else
{
print("<td align=center id=specialtd>0</td>\n");
        print("<td align=center id=specialtd>0</td>\n");请问上面这段代码有什么问题,问什么不能正常访问类数组currentLUNs中的内容;

解决方案 »

  1.   

    把生成这个$currentLUNs数组的代码贴出来。
      

  2.   

    foreach($lines as $key => $line)
    {
        if($key > 0)
        {
            if(preg_match("/(\w+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+(\w+)\s+([0-9]+)\s*(.*)/",$line,$match))
            {
                $currentLUNs[$match[1]] = new lun($match[1] , $match[2] , $match[3] , $match[4] , $match[5], $match[6], $match[7]);
            }
        }
    }
      

  3.   

    先打印一下$lines数组!看里面有没有值。
      

  4.   

    有的,currentLUNs数组用foreach可以循环打印,但是用currentLUNs[i]这种访问方式就不行,不知道为什么
      

  5.   

    也可以打印一下array_keys($currentLUNs),看看正则获取了多少?
      

  6.   

    要currentLUNs[$i]访问。