2016-10-03 55 views
0

我正在使用twitter API来获取应用程序限制。当我提出要求时,我收到以下回复(使用print_r);如何获取从twitter API返回的stdClass对象的值?

stdClass Object 
(
[rate_limit_context] => stdClass Object 
    (
     [application] => Vu62t75UIKwKA392lipsQPB91 
    ) 

[resources] => stdClass Object 
    (
     [search] => stdClass Object 
      (
       [/search/tweets] => stdClass Object 
        (
         [limit] => 450 
         [remaining] => 450 
         [reset] => 1475485694 
        ) 

      ) 

    ) 

[httpstatus] => 200 
[rate] => stdClass Object 
    (
     [limit] => 180 
     [remaining] => 176 
     [reset] => 1475485014 
    ) 

) 

我能够在每一个关键得值

$apiStatus= $limitJsonResponse->httpstatus; 
$apiRateLimit=$limitJsonResponse->rate->limit; 

但我没能找到一种方法来访问此属性[/search/tweets]的值。

如果我尝试获取此属性的值作为其他

$limit =$limitJsonResponse->resources->search->/search/tweets->remaining; 

我得到这个错误

Parse error: syntax error, unexpected '/', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' 
+1

你可以使用它作为:'$限额= $ limitJsonResponse - > { '资源'} - > { '搜索'} - > { '/搜索/鸣叫'} - > { '剩余'}; ' – Alex

+0

显示错误'解析错误:语法错误,意外'(T_STRING)' – prograshid

+0

实际上得到这2个错误。 (上面的错误是由于我犯了一些其他错误) '未定义的属性:stdClass :: $/search/tw eets' '尝试获取非对象的属性' – prograshid

回答

0

我不知道这是否是一个很好的答案,但它解决了我的问题 我将对象分为stdClass,并将最后一个对象展开。

$param=array('resources'=>'search'); 
    $limitJsonResponse=$apiObj->application_rateLimitStatus($param,true); 

    // an stdClass object 
    $searchObj=$limitJsonResponse->resources->search; 

    $searchArray = (array)$searchObj; 
    $searchTweetObj =$searchArray['/search/tweets']; 
    $limit= $searchTweetObj->limit; 
    echo $limit;