在使用XML时出现Warning:Illegal offset type
今天在写一个小程序的时候发现一个问题:
$attr = $v->attributes();
$id = $attr['id'];
$oldprice = $attr['oldprice'];
$oldamount= $attr['oldamount'];
$oldlevel = $attr['oldlevel'];
$url = $attr['url'];
$rs = checknew($url);
if($rs['price'] != $oldprice || ($rs['amount'] != $oldamount) || ($rs['level'] != $oldlevel)){
$arrt['newprice'] = $rs['price'];
$arrt['newamount'] = $rs['amount'];
$arrt['newlevel'] = $rs['level'];
$diff[$id] = $rs;
}
这样用谁能看出来它有问题??
想了又想,看了又看,就是不知道那里有问题。
于是打印出来:Warning: Illegal offset type in 是这样的信息,但这一行指向的是 $diff[$id] = $rs;但也没有错呀。
接着把$id 然後 var_dump($name) 來看看, 是 Object 的結構如下:
object(SimpleXMLElement)#9 (1) {
[0]=>
string(5) "title"
}
于是,又把$id = $attr['id'];改成 $id = $attr['id'][0];还是无济于世,但感觉上面var_dump出来的怪怪的,于是想用intval试下,其它相应的也用strval,晕,成功了,汗,什么玩意。
弄不清楚,先记在这里吧
$attr = $v->attributes();
$id = $attr['id'];
$oldprice = $attr['oldprice'];
$oldamount= $attr['oldamount'];
$oldlevel = $attr['oldlevel'];
$url = $attr['url'];
$rs = checknew($url);
if($rs['price'] != $oldprice || ($rs['amount'] != $oldamount) || ($rs['level'] != $oldlevel)){
$arrt['newprice'] = $rs['price'];
$arrt['newamount'] = $rs['amount'];
$arrt['newlevel'] = $rs['level'];
$diff[$id] = $rs;
}
这样用谁能看出来它有问题??
想了又想,看了又看,就是不知道那里有问题。
于是打印出来:Warning: Illegal offset type in 是这样的信息,但这一行指向的是 $diff[$id] = $rs;但也没有错呀。
接着把$id 然後 var_dump($name) 來看看, 是 Object 的結構如下:
object(SimpleXMLElement)#9 (1) {
[0]=>
string(5) "title"
}
于是,又把$id = $attr['id'];改成 $id = $attr['id'][0];还是无济于世,但感觉上面var_dump出来的怪怪的,于是想用intval试下,其它相应的也用strval,晕,成功了,汗,什么玩意。
弄不清楚,先记在这里吧