在PHP类中访问类成员作为数组的问题

时间:2010-07-15 00:29:17

标签: php

我正在尝试将FedEx跟踪类集成到我的应用程序中。该类接受SOAP响应并将其放入分层类结构中。我访问这样的值:

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

这适用于大多数情况。我遇到的问题是当给定货件只有一个事件时,我得到一个错误,说我不能将该类视为一个数组。由于只有一个事件,我需要在没有数组索引的情况下使用:

来访问它
$city = $response->TrackDetails->Events->Address->City;  

有没有办法解决这个问题而不做这样的事情:

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

这个问题涉及大量数据领域,所以如果我能避免的话,我不想使用如此繁琐的东西。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

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

这可以通过回答所有字段的循环来完成,自动将每个孤独者放入长度为1的数组中。