您好,欢迎访问一九零五行业门户网

Fatal Error: Can't use object 'stdClass' as array 宗师帮看看郁闷死了

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: 引用:
其它类似信息

推荐信息