给出以下代码
$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,这不是一个解决方案我这样做是作为家庭作业和大学服务器的运行
答案 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;