如何访问 stdClass 多级对象或数组?
How to access stdClass Multi level object or array?
我不得不在 PHP 中发出一个特别复杂的 SOAP 请求,并且似乎在对象中收到了返回的对象。我需要获得一个特定的值,例如 "session_token"。我可以 var_dump 请求,甚至可以将其转换为数组,但我无法访问单个元素。请帮忙!
对象:
stdClass Object ( [login_response] => stdClass Object
( [response_context] => stdClass Object
( [session_token] => b1043dcb82625701188ffff03572
[response_status] => OK [response_message] => Login successful
))))
转换后的数组:
Array ( [0] =>
Array ( [response_context] =>
Array ( [session_token] => b1043dcb82625701188ffff03572
[response_status] => OK [response_message] => Login successful
) ) )
一旦它是一个数组,它就只是一个数组,例如
$obj->foo->bar->baz
将只是
$arr['foo']['bar']['baz']
所以在你的情况下
$arr[0]['response_context']['response_status'] -> "OK"
您可以使用此服务,array visualizer,这将帮助您定位并仅提取您需要的内容。刚好超过其中的 print_r 输出。而已。
试一试
如果你把它作为一个对象,没有理由不这样做。
echo $obj->login_response->response_context->session_token;
echo $obj->login_response->response_context->response_status;
echo $obj->login_response->response_context->response_message;
会输出
b1043dcb82625701188ffff03572
OK
Login successful
通常访问一个对象的任意键,需要这样调用
echo $obj->key;
但是,由于这是一个多级对象,要访问该元素,您必须像下面这样编写代码。
echo $obj->login_response->response_context->session_token;
结果将是b1043dcb82625701188ffff03572
同理,一般访问数组的任意键,需要这样调用
echo $arr['key'];
但是,由于这是一个多级数组,要访问元素,您必须像下面这样编写代码。
echo $arr[0]['response_context']['session_token'];
输出为b1043dcb82625701188ffff03572
在这里,
0
是 $arr
数组的键。
response_context
是 0
.
的关键
session_token
是 response_context
.
的关键
我不得不在 PHP 中发出一个特别复杂的 SOAP 请求,并且似乎在对象中收到了返回的对象。我需要获得一个特定的值,例如 "session_token"。我可以 var_dump 请求,甚至可以将其转换为数组,但我无法访问单个元素。请帮忙!
对象:
stdClass Object ( [login_response] => stdClass Object
( [response_context] => stdClass Object
( [session_token] => b1043dcb82625701188ffff03572
[response_status] => OK [response_message] => Login successful
))))
转换后的数组:
Array ( [0] =>
Array ( [response_context] =>
Array ( [session_token] => b1043dcb82625701188ffff03572
[response_status] => OK [response_message] => Login successful
) ) )
一旦它是一个数组,它就只是一个数组,例如
$obj->foo->bar->baz
将只是
$arr['foo']['bar']['baz']
所以在你的情况下
$arr[0]['response_context']['response_status'] -> "OK"
您可以使用此服务,array visualizer,这将帮助您定位并仅提取您需要的内容。刚好超过其中的 print_r 输出。而已。 试一试
如果你把它作为一个对象,没有理由不这样做。
echo $obj->login_response->response_context->session_token;
echo $obj->login_response->response_context->response_status;
echo $obj->login_response->response_context->response_message;
会输出
b1043dcb82625701188ffff03572
OK
Login successful
通常访问一个对象的任意键,需要这样调用
echo $obj->key;
但是,由于这是一个多级对象,要访问该元素,您必须像下面这样编写代码。
echo $obj->login_response->response_context->session_token;
结果将是b1043dcb82625701188ffff03572
同理,一般访问数组的任意键,需要这样调用
echo $arr['key'];
但是,由于这是一个多级数组,要访问元素,您必须像下面这样编写代码。
echo $arr[0]['response_context']['session_token'];
输出为b1043dcb82625701188ffff03572
在这里,
0
是 $arr
数组的键。
response_context
是 0
.
session_token
是 response_context
.