代码语言:javascript复制
function VARIANT_ArrAy($process){
$row = array();
foreach($process->Properties_ AS $key => $val){
if(is_object($val->value)){
$tval = array();
if(count($val->value)>0){
foreach($val->value AS $k => $v){
$tval[$k] = $v;
}
$kval =implode(',', $tval);
}else{
$kval = null;
}
$kname = $val->name;
}else{
$kname = $val->name;
$kval = $val->value;
}
$row[$kname] = $kval;
}
return $row;
}
首先我们先声明一个VARIANT类型转Array数组的函数. 这函数已经做了完全的兼容.
代码语言:javascript复制$wmi = new COM('winmgmts://');
$queryList = $wmi->ExecQuery("SELECT * FROM Win32_OperatingSystem");
foreach($queryList as $key => $process){ // $process 默认就是VARIANT(泛型)
$arr = VARIANT_ArrAy($process);
print_r($arr); // 详细值.
exit();
}
简单地查询示例.
你可以用var_dump函数打印一下, 可以很清楚看到类型. 但不能看到更多的具体.
假如你需要自行研究, 搞懂一切.
那你可以寻找"com_print_typeinfo" 函数的相关信息.
END