我具有以下函数,该函数将SimpleXML对象返回到常规数组中。似乎工作正常,但是,如果我打开错误报告功能,则会收到很多警告:
Warning: get_class() expects parameter 1 to be object, string given
但是它似乎仍然以某种方式起作用。有什么想法可以使它正常运行而没有错误吗?
function convert($content){
$data = (array)$content;
foreach ($data as $k => $v){
if(strpos(get_class($v),"SimpleXML")!==false){
$data[$k] = XMLArray($v);
}
}
return $data;
}
答案 0 :(得分:0)
我认为是因为您传递的是$v
而不是$k
function convert($content){
$data = (array)$content;
foreach ($data as $k ){
if(strpos(get_class($k),"SimpleXML")!==false){
$data[$k] = XMLArray($k);
}
}
return $data;
}
选中此
答案 1 :(得分:0)
只需添加is_object检查。您收到警告,因为它正在循环运行。对于$ v的某个值,它是一个对象,并且该部分运行良好,但是对于某些值,$ v不是一个对象。在$ v不是对象的情况下,您会得到警告。
function convert($content){
$data = (array)$content;
foreach ($data as $k => $v){
if(is_object($v) && strpos(get_class($v),"SimpleXML")!==false){
$data[$k] = XMLArray($v);
}
}
return $data;
}