PHP JSON出错:Cannot use object of type stdClass as array解决方法
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 就可以了。
相关推荐
-
PHP5中新增stdClass 内部保留类
stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没有可以调用的方法.stdClass类可以被继承,只是这样做没有什么意义. 该类是PHP的保留类,并不是所有类的基类. 复制代码 代码如下: <?php class foo {} $bar = new foo(); echo $bar instanceof stdClass?'yes':'no'; //output:no 另外一个例子: 复制代码 代码如下:
-
PHP标准类(stdclass)用法示例
本文实例讲述了PHP标准类(stdclass)用法.分享给大家供大家参考,具体如下: php是内置标准类的(stdclass) <?php $obj = new stdclass(); echo '<pre>'; var_dump($obj); $obj->a = 1; $obj->b = 1; var_dump($obj); 运行结果如下: object(stdClass)[1] object(stdClass)[1] public 'a' => int 1 publ
-
PHP中遍历stdclass object的实现代码
需要操作的数据: 复制代码 代码如下: $test =Array ( [0] => stdClass Object ( [tags] => 最快的车,Bloodhound,SSC [id] => 48326888 ) ) 从网上查到的方法是 用get_object_vars 把类类型转换成数组 然后在用 foreach 遍历即可 $array = get_object_vars($test);
-
PHP中STDCLASS用法实例分析
本文实例讲述了PHP中STDCLASS用法.分享给大家供大家参考,具体如下: PHP中STDCLASS在我们开发应用中使用到的不多,但是PHP中STDCLASS作用是非常的大的,下面我们一起来看PHP中STDCLASS的用法. 在WordPress中很多地方使用stdClass来定义一个对象(而通常是用数组的方式),然后使用get_object_vars来把定义的对象『转换』成数组. 如下代码所示: $tanteng = new stdClass(); $tanteng->name = 'tan
-
一个ASP创建动态对象的工厂类(类似PHP的stdClass)
最近整理ASP/VBScript代码,发现过去的一个ASP实现的MVC框架,可惜是个半成品,效率也成问题,不过发现里面有些我写的代码,感觉还稍稍可以拿出来见人,于是今天作此文以记之. 说是ASP,其实和VBScript也脱不了干系,VBScript语言传承于Visual Basic,VB的语法灵活度已经不尽如人意了,VBS作为其子集可想而知.神马反射.自省等先进的技术,微软在.NET中才引入.作为被抛弃的技术,也不奢望微软能够提供支持,于是顽固守旧的程序员只有绞尽脑汁的去模仿实现一些类似的功能.
-
php中stdClass的用法分析
本文实例分析了php中stdClass的用法.分享给大家供大家参考.具体分析如下: stdclass在php中是预定义的几个类之一,是zent保留的一个类.实际上它是PHP提供的一个基类,就是一个空白的类,里面什么都没有,我们可以实例化它,然后定义一系列的变量,通过它来进行变量的传递(很多php程序员用它来传递一系列变量的值,而同时又懒得去创建一个自己的类).但是,由于实例化后不能添加方法,只能传递属性.因为,一旦类被实列化以后,就不能在添加方法了. stdclass可以作为基类使用,其最大特点
-
从PHP的源码中深入了解stdClass类
在百度百科中,对于stdClass的定义如下: 复制代码 代码如下: stdClass在PHP5才开始被流行.而stdClass也是zend的一个保留类.stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object.同时,这个基类又有一个特殊的地方,就是没有方法.凡是用new stdClass()的变量,都不可能会出现$a->test()这种方式的使用.PHP5的对象的独特性,对象在任何地方被调用,都是引用地址型的,所以相对消耗的资
-
理解PHP中的stdClass类
相信大家跟我一样,会经常看到和下面很类似的PHP代码: 复制代码 代码如下: $user = new stdClass();$user->name = 'gouki'; 这样的代码,这是干嘛用的呢?翻开手册,搜索stdClass,你会发现,手册上几乎没有介绍,如果你再次搜索google,看到的也几乎全是英文解释.其实,stdClass在PHP5才开始被流行.而stdClass也是zend的一个保留类.似乎没有其他作用.也几乎没有任何说明.或者,我们可以这么理解:stdClass是PHP的一个基类
-
PHP中把stdClass Object转array的几个方法
方法一: 复制代码 代码如下: //PHP stdClass Object转array function object_array($array) { if(is_object($array)) { $array = (array)$array; } if(is_array($array)) { foreach($array as $key=>$value) { $array[$key] = object_
-
PHP错误Cannot use object of type stdClass as array in错误的解决办法
很多人在PHP输出一个二维数组的时候出现"Fatal error: Cannot use object of type stdClass as array in--".解决办法分析如下: 现有这样一个二维数组: 复制代码 代码如下: Array ( [0] => stdClass Object ( [id] => 1 [title] => 招聘信息 [size] => 300*150 [pic] => ./upload/201406020
随机推荐
- backbone简介_动力节点Java学院整理
- javascript中有趣的反柯里化深入分析
- js实现的GridView即表头固定表体有滚动条且可滚动
- 利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
- PHP开发文件系统实例讲解
- java 实现定时的方法及实例代码
- java 中接口和抽象类的区别与对比
- 限制复选框的最大可选数
- 用vbs实现的连连看在线游戏
- ruby实现的一个异步文件下载HttpServer实例
- 电脑开机时间的计算代码
- C#中常使用进度条的代码
- 基于jquery的兼容各种浏览器的iframe自适应高度的脚本
- javascript 三级下拉选择菜单Levels对象
- Android仿美团网、大众点评购买框悬浮效果修改版
- Android 实现ViewPager边界回弹效果实例代码
- 多模字符串匹配算法原理及Java实现代码
- Oracle 10g利用amdu抽取数据文件的方法教程
- intellij idea tomcat热部署配置教程
- 使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
