PHP新手求助:如何从stdClass对象提取result字段并解决报错?
解决PHP中获取对象属性报错的问题
嘿,作为PHP新手遇到这种问题太正常啦,我来帮你捋清楚!
首先看你给出的var_dump输出:
object(stdClass)#58 (3) { ["jsonrpc"]=> string(3) "2.0" ["id"]=> int(1) ["result"]=> string(42) "Success" }
这里明明白白显示$data是一个stdClass对象,不是数组!你用数组的$data['result']写法去访问对象的属性,自然会抛出Illegal string offset 'result'的错误。
正确的获取方式有两种:
直接访问对象属性(推荐,最简洁直观):
$result = $data->result;PHP里对象的公共属性是用
->符号来访问的,直接写属性名就行,不用加引号。转成数组后访问(如果更习惯数组操作的话):
可以把对象强制转换成数组,再用数组下标访问:$dataArray = (array)$data; $result = $dataArray['result'];不过这种方式其实没必要,直接用对象访问更高效。
以后遇到类似问题,先看var_dump的开头:如果是object(...)就说明是对象,用->访问;如果是array(...)才是数组,用[]访问。
内容的提问来源于stack exchange,提问作者Haren Sarma
相关产品推荐
相关产品推荐

