天天看点

PHP:Cannot use object of type stdClass as array

json数据

$json = '{"name": "Tom", "age": 23}';      

反序列化方式一:

$data = json_decode($json);


// 取值方式
// 错误
// print_r($data['name']);
// Cannot use object of type stdClass as array

// 正确
print_r($data->name); // Tom
print_r($data->age); // 23


print_r(gettype($data)); // object
print_r($data);      

输出

stdClass Object
(
    [name] => Tom
    [age] => 23
)      

反序列化方式二:

$data = json_decode($json, true);

// 取值方式
// 错误
// print_r($data->name);
// Trying to get property of non-object

// 正确
print_r($data['name']); // Tom
print_r($data['age']); // 23

print_r(gettype($data)); // array
print_r($data);      

打印结果

Array
(
    [name] => Tom
    [age] => 23
)      

参考

出现“Cannot use object of type stdClass as array”