fatal error: can't use object 'stdclass' as array 大师帮看看郁闷死了
本帖最后由 baikujingling 于 2014-09-15 20:04:51 编辑
39行代码为: $item=$resp[item_list]['sp_item'][0];
-----------------------------------------------------------------------------------------------------------------------------
错误提示为:
com.caucho.quercus.quercuserrorexception: e:\tae_svn\tae_sdk\apps\ceshi7\admin\core\goodscreate.php:39: fatal error: can't use object 'stdclass' as array
-----------------------------------------------------------------------------------------------------------
前后代码为:
if ($dopost == 'caiji')
{
if ($numiid != && rrulenum($numiid))
{
$c = new topclient;
$c->appkey = $appkey; //top appkey
$c->secretkey = $secretkey; //top secretkey
//实例化具体api对应的request类
$req = new spiteminfolistgetrequest;
$req->setid($numiid);
$req->setsitekey('3zzd10741k7259kez673850e4346d6l1');
$resp = $c->execute($req);
//print_r($resp);
$item=$resp[item_list]['sp_item'][0];
if ($item)
{
$detail_url = $item[item_url]; //商品链接
$num_iid = $item[item_id]; //商品id
$title = $item[title]; //商品标题
$nick = $item[nick]; //卖家昵称
$pic_url = http://img1.tbcdn.cn/tfscom/.$item[pic_url]; //商品主图
$price = $item[price]; //商品原价格
// $freight_payer = $item[freight_payer]; //取消了
$freight_payer =seller;//临时都设置为包邮
$sid=$item[seller_id]; //卖家数字id
$num = 1000; //商品数量 临时使用
$item_imgs =$item[itemimgs]; //商品图片列表
}
else
$createmessage = '不存在这个商品';
//print_r($resp);
}
else
{
$createmessage = 商品id【不能为空】并且【必须是数字】。;
}
}
------解决思路----------------------
年轻人,想当然是大忌!
楼主只有
$resp = $c->execute($req);
//print_r($resp);
$item=$resp[item_list]['sp_item'][0];
并没有给出 print_r($resp) 的结果
你如何就能断定他就是 json 解码的结果呢?
我用 json 模拟一个出错的场景,并不表示是楼主的真实情况
只是说明这种错误可能在什么情况下出现
况且我也说了原因:你是把对象当做数组访问了
引用:quote: 引用:
我在帮楼主分析出错的原因,你捣什么乱
quote: 引用:
quote: 引用:
由
$o = json_decode('{a:{b:[1,2,3]}}');
echo $o['a']['b'][0];
报错 fatal error: cannot use object of type stdclass as array
可推知你是把对象当做数组访问了
要这样
echo $o->a->b[0];
也可这样
$o = json_decode('{a:{b:[1,2,3]}}',true);
echo $o['a']['b'][0];
这个你也没说原因。。。。。。。
应该是 json_decode 总是返回一个php对象 而不是数组
------解决思路----------------------
引用:年轻人,想当然是大忌!
楼主只有
$resp = $c->execute($req);
//print_r($resp);
$item=$resp[item_list]['sp_item'][0];
并没有给出 print_r($resp) 的结果
你如何就能断定他就是 json 解码的结果呢?
我用 json 模拟一个出错的场景,并不表示是楼主的真实情况
只是说明这种错误可能在什么情况下出现
况且我也说了原因:你是把对象当做数组访问了
quote: 引用: