2013-04-15 5 views
-1

stdclass에서 @ 기호로 객체에 액세스하는 방법 curl : $ response-> HotelListResponse-> customerSessionId (this works)와 같은 PHP에서 이것을 시도했지만 다음과 같이하면 : $ response-> HotelListResponse-> HotelList -> @ activePropertyCount 반환 오류 또는 null 문자열PHP에서 STDCLASS 객체에 액세스

stdClass Object 

[HotelListResponse] => stdClass Object 
    (
     [customerSessionId] => 0ABAA84E-3DC0-4913-E0C2-5C6541908000 
     [numberOfRoomsRequested] => 1 
     [moreResultsAvailable] => 1 
     [cacheKey] => 6b03dc04:13e0c5c6541:-7ffd 
     [cacheLocation] => 10.186.168.78:7302 
     [cachedSupplierResponse] => stdClass Object 
      (
       [@matchedLocale] => true 
       [@matchedCurrency] => true 
       [@tpidUsed] => 5001 
       [@otherOverheadTime] => 2 
       [@candidatePreptime] => 13 
       [@supplierResponseTime] => 680 
       [@supplierResponseNum] => 25 
       [@supplierRequestNum] => 207 
       [@cachedTime] => 0 
       [@supplierCacheTolerance] => NOT_SUPPORTED 
      ) 

     [HotelList] => stdClass Object 
      (
       [@activePropertyCount] => 224 
       [@size] => 25 
       [HotelSummary] => Array 
        (
         [0] => stdClass Object 
          (
           [@ubsScore] => 6144465 
           [@order] => 0 
+0

'$ 응답 -> HotelListResponse-> HotelList하는 데 도움이

$result->HotelListResponse->HotelList->$var; 

희망 -> { '를 @ activePropertyCount '}' –

답변

1

두 가지 방법으로이 작업을 수행 할 수 있습니다.

방법 1 :

마크 베이커는 중괄호를 사용하여 같은 제안 같은 방법을 사용하여 호출합니다. 중괄호는 변수 이름의 끝을 명시 적으로 지정하는 데 사용됩니다. 일부 변수에 할당 @activePropertyCount

:

$result->HotelListResponse->HotelList->{'@activePropertyCount'}; 

당신은 방법 2 http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex

대한 추가 정보를 원하시면이 링크를 참조 할 수 있습니다. 에서

$var = '@activePropertyCount'; 

는 그런 다음 결과를 얻을 수 있습니다 :처럼 당신이 할 수있는이 당신 :

+0

작품보다 낫습니다. –