Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:SOAPWebService与JSON响应_Php_Json_Web Services_Soap - Fatal编程技术网

PHP:SOAPWebService与JSON响应

PHP:SOAPWebService与JSON响应,php,json,web-services,soap,Php,Json,Web Services,Soap,我正在使用SOAP在PHP中开发webservice,我必须以JSON格式返回响应Web服务方法很简单。它将数组作为输入,并应返回JSON对象。在webservice中注册方法如下: $server->register( 'getProducts', array('arr' => 'xsd:array'), array('return' => 'xsd:json') ); 我在方法内部做这件事: $sql3 = "SELECT name, price fro

我正在使用
SOAP
PHP
中开发
webservice
,我必须以
JSON
格式返回响应<代码>Web服务方法很简单。它将
数组
作为输入,并应返回
JSON
对象。在
webservice
中注册方法如下:

$server->register(
  'getProducts', 
  array('arr' => 'xsd:array'), 
  array('return' => 'xsd:json')
);
我在方法内部做这件事:

 $sql3 = "SELECT name, price from products WHERE status_id=$staus_id and cat_id=$cat_id";
 $result3 = $conn->query($sql3);
 $row3 = mysqli_fetch_all($result3, MYSQLI_ASSOC);
 $json = json_encode($row3);
 return $json;
而在
客户端
端,我这样做是为了捕捉对象并对其进行回声:

$response = $client->getProducts($param);
echo $response;
但是当我运行
客户端
脚本
时,它什么也不提供(一个空的
json
对象):


当我在
$server->register
中将方法的返回类型更改为
string
,并在方法中返回实际字符串时,它可以正常工作,但在
JSON
对象的情况下则不行。有什么帮助吗?

我猜,既然您在服务器端进行了json_编码,那么您必须在客户端进行json_解码

将最后一行的代码更改为:

 echo $json;


我在这里猜测,因为您在服务器端进行了json_编码,所以必须在客户端进行json_解码

将最后一行的代码更改为:

 echo $json;