2010-07-15 5 views
1

내 응용 프로그램에 FedEx 추적 클래스를 통합하려고합니다. 이 클래스는 SOAP 응답을 받아 계층 적 클래스 구조로 변환합니다. 나는 다음과 같은 값에 접근한다 :클래스 클래스 멤버를 PHP 클래스의 배열로 액세스 할 때의 문제

$city = $response->TrackDetails->Events[$i]->Address->City; 

이것은 대부분의 경우에 잘 작동한다. 내가 가진 문제는 주어진 발송물에 대해 하나의 이벤트가있을 때 클래스를 배열로 처리 할 수 ​​없다는 오류가 발생합니다. 단지 하나의 이벤트가 있기 때문에, 내가 사용하는 배열 인덱스없이 접근 할 필요가 :

if($num_events==1){ 
    $city = $response->TrackDetails->Events->Address->City; 
}else{ 
    $city = $response->TrackDetails->Events[$i]->Address->City; 
} 

는 톤이 있습니다

$city = $response->TrackDetails->Events->Address->City; 

이 같은 일을하지 않고 처리하는 방법이 있나요 이 문제에 해당하는 데이터 필드가 너무 많아서 피할 수 있다면 너무 성가신 것을 사용하고 싶지 않습니다. 어떤 아이디어?

답변

0
if ($num_events == 1) { 
    $response->TrackDetails->Events = array($response->TrackDetails->Events); 
} 

이 자동으로 감사 길이 1의

+0

배열로 각 외톨이을 가하고, 당신의 대답에 모든 필드를 통해 루프를 수행 할 수 있습니다! 그것은 완벽하게 작동했고 내 아이디어보다 훨씬 덜 clunky했습니다. – user77413

관련 문제