PHP错误,它是可解析的还是语言错误?

时间:2010-03-29 12:47:39

标签: 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

有没有一种特定的方式我应该打印出来,或者它是一个bug,从研究/谷歌搜索许多人似乎有一个问题,但我找不到一个合适的解决方案,除了降级php,这不是一个解决方案我这样做是作为家庭作业和大学服务器的运行

2 个答案:

答案 0 :(得分:2)

我猜测该函数的返回类型不是字符串(或定义了__toString的任何字符串)。通常,stdClass的实例将具有一个或多个对您有用的属性。

尝试做类似的事情:

print_r($calculation)

那应该告诉你对象上有什么,以及你可能想要用它做什么。我猜你想要按照(例子)的方式打印一些属性:

echo $calculation->result;

答案 1 :(得分:0)

尝试将参数作为数组传递:

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

var_dump()可以突出显示您的结果是一个对象,而double可以是该对象的成员。 例如:

$calculation->ConversionRateResult;