2010-03-29 6 views
1

Étant donné le code suivantPHP Erreur, est-ce résolvable, ou un bug de langue?

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

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

faire un __getTypes sur le client me donne

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

si je puis faire

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

et calcul impression i obtenir une erreur au sujet

Existe-t-il une manière spécifique que je devrais imprimer ceci, ou un bogue, de recherche/googling beaucoup de gens semblent avoir un problème mais je ne peux pas trouver une solution de suitbelling, qui n'est pas une solution pour moi comme je le fais comme devoir et son fonctionnement hors d'un serveur de l'université

+0

désolé, oublié le signe dollar si cela fait une différence? – rls

+1

Tagged 'html'? Pourquoi? –

+0

oui, cela fait une différence, j'ai juste supprimé ma réponse et mon commentaire. '$ variable'! =' constant'. –

Répondre

2

Je devine que le type de retour de cette fonction est pas une chaîne (ou quoi que ce soit avec __toString défini). Normalement, les instances de stdClass auront une ou plusieurs propriétés qui vous seront utiles.

Essayez de faire quelque chose comme:

print_r($calculation) 

Cela devrait vous dire ce que l'objet a sur elle, et ce que vous pouvez faire. Je suppose que vous voudriez imprimer une propriété là-bas sur le modèle de (exemple):

echo $calculation->result; 
+0

oui, désolé j'aurais dû dire, la sortie est de type double – rls

+0

merci Spash -: D – rls

0

Essayez de passer les paramètres comme un tableau:

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

var_dump() pourrait mettre en évidence que le résultat est un objet et le double pourrait être un membre de cet objet. Exemple:

$calculation->ConversionRateResult;