我在数组$ array1内有一个数组Address
[Address] => stdClass Object
(
[Address1] => xxxxxx
[City] => xxxxx
[State] => xxxxx
[Zip] => xxxxxxx
)
我试图调用print_r($ array1 ['Address']),但是没有用。 stdClass对象是否要求我以不同的方式调用它?
我在名为$array1
的函数中设置了CALL_FUNCTION
。在函数内部,我使用return $array1
来访问函数外部的数组。
在函数之外,我有这个...
$array1 = array();
$array1 = CALL_FUNCTION();
如果我执行print_r($array1)
,它将返回其中包含上述std对象数组的数组。
答案 0 :(得分:3)
$ array1不是数组,它也是错误所指示的对象:
致命错误:未捕获错误:无法将stdClass类型的对象用作数组
拥有$array1 = array()
不会做任何事情,因为您没有使用$array1
,而是立即将其重新分配为返回值CALL_FUNCTION()
。
作为对象访问它:$array1->Address->Address1
。
但是,为了将来程序员遇到您的代码,您需要将$array1
的名称更改为$userObject
。
答案 1 :(得分:0)
您可以将其转换为数组
// get your array
$array1 = CALL_FUNCTION();
// cast the stdObject to an array
$array1['Address'] = (array) $array1['Address'] ;