php 'Cannot use object of type stdClass as array'错误解决方法
墨初 后端开发 3609阅读
今天调试php时,出现“Cannot use object of type stdClass as array”错误,虽然不是什么大错误,但也是自己写代码不用心造成的,有必要记录一下,提醒一下自己。
错误代码:
Cannot use object of type stdClass as array
含义:不能将stdClass类型的对象用作数组
解释:对象类型的变量,被当作了数组处理,所以php会抛出了错误。
错误过程:
错误的php代码
php代码:
<?php $json = '{"name":"飞鸟慕鱼","host":"feiniaomy.com","author":"mochu"}'; $arr = json_decode($json); // 这里输出数组中的一个元素 echo $arr['name']; ?>
输出结果:
php会抛出以下错误 Cannot use object of type stdClass as array
解决方法:
以上的代码,是利用 json_decode() 函数将一个json字符串转换成数组,并输出。但 json_decode() 函数由于没有设置第二个参数,所以输出的变量类型依然是对象,就造成以上的错误。
代码修正如下:
php代码:
<?php $json = '{"name":"飞鸟慕鱼","host":"feiniaomy.com","author":"mochu"}'; //修改后的代码 $arr = json_decode($json,true); echo $arr['name']; ?>
输出结果:飞鸟慕鱼