2010-03-29 54 views
1

考慮下面的代碼PHP錯誤,是可解析的還是語言錯誤?

$c= new SoapClient('http://www.webservicex.net/CurrencyConvertor.asmx?WSDL'); 

$usa = "USD"; 
$eng = "GBP"; 

在客戶端上做__getTypes給我

Array ([0] => struct ConversionRate { Currency FromCurrency; Currency ToCurrency; } [1] => string Currency [2] => struct ConversionRateResponse { double ConversionRateResult; }) 

如果我那麼做

$calculation = $c->ConversionRate($usa, $eng); 

和打印計算我得到

錯誤
Catchable fatal error: Object of class stdClass could not be converted to string 

有沒有一種特定的方式,我應該打印出來,或者它是一個錯誤,從研究/谷歌搜索許多人似乎有一個問題,但我無法找到一個適合的解決方案,而不是降級PHP,這不是一個解決方案像我這樣做的功課,它的流失大學服務器的

+0

對不起,忘了美元符號,如果這有所作爲? – rls 2010-03-29 12:51:28

+1

標記爲'html'?爲什麼? – 2010-03-29 12:54:02

+0

是的,它有所不同,我剛剛刪除了我的答案和我的評論。 '$ variable'!='constant'。 – 2010-03-29 12:57:42

回答

2

我猜測從該函數的返回類型不是字符串(或具有任何__toString定義)。通常stdClass的實例會有一個或多個屬性,這些屬性對你來說很有用。

嘗試做這樣的事情:

print_r($calculation) 

這應該告訴你的對象有它,它是什麼,你可能想用它做。我想你會想要打印一些財產沿線(示例):

echo $calculation->result; 
+0

是的,抱歉,我應該說,輸出是雙重型 – rls 2010-03-29 13:03:46

+0

謝謝你Spash - :D – rls 2010-03-29 13:09:09

0

嘗試傳遞參數數組:

$parameters = array('FromCurrency' => "USD", 
    'ToCurrency' => "GBP"); 
$calculation = $soapClient->ConversionRate($parameters) 
var_dump($calculation); 

的var_dump()可以突出你的結果是一個對象和雙可能是該對象的成員。 實施例:

$calculation->ConversionRateResult;