如何访问数组中的对象元素

时间:2013-06-19 05:18:28

标签: php github-api

我正在使用Github PHP Library。您可以使用Buzz HTTP Client进行特定调用,如下所示:

$client->getHttpClient()->get('repos/:user/:repo/events');

问题是该请求的返回是我不确定如何访问元素的原因:

Github\HttpClient\Message\Response Object
(
    [remainingCalls] => 
    [protocolVersion:Buzz\Message\Response:private] => 0
    [statusCode:Buzz\Message\Response:private] => 200
    [reasonPhrase:Buzz\Message\Response:private] => OK
    [headers:Buzz\Message\AbstractMessage:private] => 

    [content:Buzz\Message\AbstractMessage:private] => 
)

现在我可以循环执行对象,执行以下操作:

foreach( $events as $item ) {
   print_r( $item );
}

但我真的只关心headerscontent内的内容。

是否有人知道如何直接访问这些元素而无需循环?

2 个答案:

答案 0 :(得分:2)

如果查看object class的来源,您会看到有一个getContent()函数可以检索内容字段的值。您还会注意到此类扩展了来自Buzz客户端的Response class。反过来,Buzz Response类是AbstractMessage class的扩展,它具有getHeaders()函数和getContent()函数。

基本上你可以使用通过继承提供的getContent()和getHeaders()函数来访问这两个变量。

答案 1 :(得分:1)

你试过这个吗?

$res = $client->getHttpClient()->get('repos/:user/:repo/events');
echo $res->remainingCalls;  // non private var

或者您应该能够调用Response Class的每个公共方法

$res->getStatusCode();
$res->getProtocolVersion();

在此检查可能的方法:

https://github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Message/Response.php

https://github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Message/AbstractMessage.php

相关问题