阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1478|回复: 0

[推荐] PHP Fatal error: Cannot use object of type stdClass as array in错误

[复制链接]
  • TA的每日心情
    开心
    2021-8-30 00:00
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2016-9-15 09:56:34 | 显示全部楼层 |阅读模式
    [size=14.3999996185303px]下面一起来看看在php开发中碰到PHP Fatal error: Cannot use object of type stdClass as array in错误问题的解决办法吧。
    普通的数组出现如下错误  

    代码如下

    <?php
    Array (
    [0] => stdClass Object (
      [id] => 1
      [title] =>精彩推荐
      [size] => 280*150
      [pic] => ./uploadfiles/201402160422.jpg
      [state] => 0 )
    [1] => stdClass Object (
      [id] => 2
      [title] =>企业要闻
      [size] => 280*150
      [pic] => ./uploadfiles/201402160533.jpg
      [state] => 0 )
    )
    ?>

    [size=14.3999996185303px]后来百度搜索一个关于差不多的问题,但对方是json数据

    [size=14.3999996185303px]php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误:

    [size=14.3999996185303px]Cannot use object of type stdClass as array

    [size=14.3999996185303px]产生原因:

    代码如下

    $res = json_decode($res);
    $res['key']; //把 json_decode() 后的对象当作数组使用。

    [size=14.3999996185303px]解决方法(2种):

    [size=14.3999996185303px]1、使用 json_decode($d, true)。就是使json_decode 的第二个变量设置为 true。
    2、json_decode($res) 返回的是一个对象, 不可以使用 $res['key'] 进行访问, 换成 $res->key 就可以了。

    [size=14.3999996185303px]
    好了现在回到我们原问题发现

    [size=14.3999996185303px]原来是不能直接用[]来显示导致的,上面代码的输出是用的:$pic[0][title],改为$pic[0]->title后正常了

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表