`

Cannot use object of type stdClass as array

    博客分类:
  • php
阅读更多
php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误

错误:
Cannot use object of type stdClass as array

产生原因:
+展开
-PHP
    $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 就可以了。

mixed json_decode ( string $json [, bool $assoc ] )
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量

参数

json
待解码的 json string 格式的字符串。

assoc
当该参数为 TRUE 时,将返回 array 而非 object 。
分享到:
评论

相关推荐

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

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

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

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

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

    方法一: 复制代码 代码如下://PHP stdClass Object转array function object_array($array) ... } if(is_array($array)) { foreach($array as $key=>$value) { $array[$key] = object_array($value); } } return

    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)用法示例

    object(stdClass)[1] public 'a' => int 1 public 'b' => int 1 ``` `stdClass`也可以用来转换数组为对象。比如有一个数组`$arr`,通过类型转换可以直接将其转换为`stdClass`对象: ```php $arr = array('a' => ...

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

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

    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