2012-06-17 61 views
1

我這樣調用的API:如何獲得格式良好的PHP Web服務響應?

$service = new Class_Service(); 

$parameters = new GetClasses(); 
$parameters->Request = new GetClassesRequest(); 

$parameters->Request->SourceCredentials = new SourceCredentials(); 
$parameters->Request->SourceCredentials->SourceName = "Name"; 
$parameters->Request->SourceCredentials->Password = "Pass"; 
$parameters->Request->SourceCredentials->SiteIDs = array(
12 
); 

$classes = $service->GetClasses($parameters); 

var_dump($classes); 

並得到這樣的迴應:

object(GetClassesResponse)#7 (1) { 
    ["GetClassesResult"]=> 
    object(GetClassesResult)#8 (6 { 
     ["Classes"]=> 
     object(stdClass)#9 (1) { 
      ["Class"]=> array(25) { 
      [0]=> object(Mi_Class)#10 (21) { 
       ["ClassScheduleID"]=> int(15) 
       ["Visits"]=> NULL 
       ["Clients"]=> NULL 
       ["Location"]=> object(Location)#11 (30) { 
       ["BusinessID"]=> NULL 
       ["SiteID"]=> int(12) 
       ["BusinessDescription"]=> NULL 
       ["AdditionalImageURLs"]=> object(stdClass)#12 (0) { } 
       ["FacilitySquareFeet"]=> NULL 

做了迴應通常是這樣的? 我該如何着手以格式化的方式獲取數據?

+2

混淆的問題。你已經拋棄了'$ classes'變量,它是一個PHP對象,而不是SOAP響應。你想做什麼?實際的SOAP響應是一些複雜的XML。格式化很好,但除了可能用於調試目的外,並沒有太多的實現。 – Hamish

+1

你有什麼是一個帶有子對象和子數組的對象。在重新格式化之後,它看起來更合理嗎?從'$ classes-> GetClassesResult-> Classes-> Class [0] - > Clients'開始,例如... –

+0

是的,它的確如此。謝謝! – Bruno

回答

1

可以遍歷您的類是這樣的:

foreach ($classes->GetClassesResult->Classes->Class as $class) { 
    // ... do your stuff here 
    print_r($class); 
}