我将更改功能名称是'价格',它的工作完美但其他名称给它发生错误如下
功能 - >
<?php
function facto($name)
{
$details= array('abc' =>100 ,'xyz'=>210 );
foreach ($details as $n => $p) {
if($name==$n)
$price=$p+100;
}
return $price;
}
?>
客户端 - &GT;
<?php
require 'lib/nusoap.php';
$client=new nusoap_client("http://localhost/WebServicePHP/service1.php?wsdl");
$book_name="abc";
$response=$client->call('facto',array("name"=>"$book_name"));
if(empty($response))
echo "Book data not available";
else
echo $response;
?>
服务 - &gt;
<?php
require 'functions.php';
require 'lib/nusoap.php';
$server=new nusoap_server();
$server->configureWSDL("demo","urn:demo");
$server- >register("facto",array("name"=>'xsd:string'),
array("return"=>'xsd:intger'));
$HTTP_RAW_POST_DATA=isset($HTTP_RAW_POST_DATA)?
$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>
现在返回错误,如
“注意:数组到字符串的转换 第9行上的C:\ xampp \ htdocs \ WebServiceExp \ factclient.php“
答案 0 :(得分:0)
这是因为您在参数中传递数组并将该数组作为if
条件中的字符串进行比较。
所以改变这一行:
$response=$client->call('facto',array("name"=>"$book_name"));
到此:
$response=$client->call('facto',$book_name);
或者改变你的if条件:
if($name==$n)
到此:
if(in_array($n,$name))
答案 1 :(得分:0)
“注意:数组转换为字符串 第9行上的C:\ xampp \ htdocs \ WebServiceExp \ factclient.php“
您尝试回显数组echo $response;
的客户端代码的第9行上的问题。将其更改为var_dump($response);
以查看此数组的结构,然后从此数组中回显适当的值