• 推荐
  • 评论
  • 收藏

PHP错误:“Cannot use object of type stdClass as array”

2022-12-03    2009次浏览

错误由来

php在调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误:Cannot use object of type stdClass as array​​​​​​
$res_data = json_decode(data); 
echo($res_data['abc']);
 

错误分析

在php中直接使用json_decode函数来解析json字符串,这样解析出来的数组中包含的对象也是php对象,不是php数组类型,所以如果使用php数组的方式来访问操作就会报错。

错误解决

  1. 在使用 json_decode 函数的时候加上第二个参数:json_decode(data,true) 这样解析出来的数类型就都转换为数组了,可以直接使用数组的方式访问里面的数据。
  2. 或者 直接使用 对象的方式操作解析出来的数据:
$res_data = json_decode(data,true);
echo($res_data->abc);