`
leiyonglin
  • 浏览: 52196 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

PHP“Cannot use object of type stdClass as array”

    博客分类:
  • php
php 
阅读更多

转自:http://blog.csdn.net/21aspnet/article/details/6599777

 

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 就可以了。

参考手册:json_decode
Return Values:Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.

分享到:
评论

相关推荐

    PHP错误Cannot use object of type stdClass as array in错误的解决办法

    很多人在PHP输出一个二维数组的时候出现“Fatal error: Cannot use object of type stdClass as array in……”。这篇文章主要介绍了该错误的解决办法,需要的朋友可以参考下

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

    然而,在这个转换过程中,开发者可能会遇到一个错误提示:“Cannot use object of type stdClass as array”。这个问题的出现往往会让开发者感到困惑,尤其是对新手而言。 错误信息“Cannot use object of type ...

    PHP中把stdClass Object转array的几个方法

    function object2array_pre(&$object){ if(is_object($object)){ $arr = (array)($object); } else { $arr =& $object; } if(is_array($arr)){ foreach($arr as $varName => $varValue){ $arr[$varName] = $...

    PHP中遍历stdclass object的实现代码

    [0] => stdClass Object ( [tags] => 最快的车,Bloodhound,SSC [id] => 48326888 ) ); ``` 这里 `$test` 是一个数组,其中第一个元素是一个 `stdclass` 对象,包含了两个属性:`tags` 和 `id`。 遍历这样的...

    PHP中STDCLASS用法实例分析

    在WordPress中很多地方使用stdClass来定义一个对象(而通常是用数组的方式),然后使用get_object_vars来把定义的对象『转换』成数组. 如下代码所示: $tanteng = new stdClass(); $tanteng->name = 'tanteng'; $...

    php中stdClass的用法分析

    这是因为`$object = (object)$array;`这样的转换实际上是创建了一个新对象,而不是将数组转换为现有的stdClass对象。要保留属性,应该使用`foreach`循环遍历数组并为每个元素赋值给对象属性。 另外,由于stdClass是...

    php object转数组示例

    function std_class_object_to_array($stdclassobject){ $_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject; foreach ($_array as $key => $value) { $value = (is_...

    理解PHP中的stdClass类

    $arrayObject = new ArrayObject($array); ``` `ArrayObject` 类允许你像操作数组一样操作对象,同时也支持一些面向对象的操作。 总的来说,`stdClass` 类在PHP中是一个实用的工具,尤其在动态创建对象和从数组...

    PHP使用new StdClass()创建空对象的方法分析

    PHP可以用 $object = new StdClass(); 创建一个没有成员方法和属性的空对象。 很多时候,程序员们会将一些参数配置项之类的信息放在数组中使用,但是数组操作起来并不是很方便,很多时候使用对象操作符->xxx比数组...

    PHP5中新增stdClass 内部保留类

    $object = (object)$array; echo $object->name; // 输出:John ``` 在这个例子中,`stdClass`起到了容器的作用,允许你以键值对的形式访问对象的属性,尽管它没有提供任何内置的方法。 `stdClass`类的另一个特性...

    PHP标准类(stdclass)用法示例

    PHP中的`stdClass`是一个内置的空类,当没有指定具体的类名时,PHP会默认创建一个`stdClass`类型的实例。在PHP面向对象编程中,`stdClass`作为一个通用的空类,常用于在运行时动态创建对象,或者对数组进行类型转换...

    从PHP的源码中深入了解stdClass类

    有时,我们可能需要将`stdClass`对象转换为数组,这可以通过`get_object_vars()`函数来实现,该函数返回一个包含对象所有公共属性的数组。另外,也可以使用`json_decode`函数将JSON字符串解析为`stdClass`对象,然后...

    json for PHP4.0

    $sampleObject = new stdClass(); $sampleObject->key1 = 'value1'; $sampleObject->key2 = 2; $json = new Json(); // 数组示例 $arrayJsonStr = $json->encode($sampleArray); echo "Array to JSON: $...

    一个ASP创建动态对象的工厂类(类似PHP的stdClass)

    m_objProperties.Add key, Array(value, access) End Sub Public Sub setValue(key, value, access) If m_objProperties.Exists(key) Then m_objProperties.Item(key)(0) = value m_objProperties.Item(key)...

    php_memcache 服务扩展

    $tmp_object = new stdClass; $tmp_object->str_attr = "test"; $tmp_object->int_attr = 123; $memcache->set("key",$tmp_object,false,10); echo "Store data in the cache (data will expire in 10 seconds)\n"; ...

Global site tag (gtag.js) - Google Analytics