PHP JSON出错:Cannot use object of type stdClass as array解决方法

yipeiwu_com6年前PHP代码库

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

复制代码 代码如下:

Cannot use object of type stdClass as array

产生原因:
复制代码 代码如下:

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

解决方法(2种):

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

相关文章

PHP return语句的另一个作用

一直以为,return只能出现在函数中,直到看了bbPress的代码: <?php require_once('./bb-load.php'); bb_reperm...

php htmlspecialchars()与shtmlspecialchars()函数的深入分析

定义和用法htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。 预定义的字符是:•& (和号) 成为 &•" (双引号)...

PHP PDO数据库操作预处理与注意事项

PDO(PHP Database Object)扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询...

PHP一些常用的正则表达式字符的一些转换

匹配双字节字符(包括汉字在内): [^\x00-\xff]    应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)  String.pr...

基于flush()不能按顺序输出时的解决办法

如果是在linux下, 首先确认是否添加 ob_start() 和 ob_flush().复制代码 代码如下:ob_start();for ($i=1; $i<=10; $i++)...