2010-03-29 41 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;