Обратите внимание на преобразование строки в строку с помощью nusoap

Я разрабатываю веб-сервис на PHP, используя nosoap. это мой файл, webservice.php

<?php require_once "nusoap/nusoap.php"; $namespace = "urn:mywsdl"; $server = new soap_server(); $server->configureWSDL('myWS', $namespace); $server->wsdl->schemaTargetNamespace = $namespace; $server->wsdl->addComplexType('datosBasicos', 'complexType', 'struct', 'all', '', array( 'codigo' => array( 'name' => 'codigo', 'type' => 'xsd:string' ), 'nombre' => array( 'name' => 'nombre', 'type' => 'xsd:string' ) )); $server->wsdl->addComplexType('arraydatosBasicos', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:datosBasicos[]') ), 'tns:datosBasicos' ); $server->register('saludar', array('nombre' => 'xsd:string'), array('return' => 'tns:arraydatosBasicos'), $namespace); function saludar($nombre) { $array[] = array('codigo' => '123', 'nombre' => 'test'); $array[] = array('codigo' => '5745', 'nombre' => 'probando'); $datos[] = $array[1]; return $datos; } $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> 

Но когда я развертываю веб-сервис с SOAPUI, я получаю эту ошибку:

 <b>Notice</b>: Array to string conversion in <b>C:\xampp\htdocs\nusoap\nusoap\nusoap.php</b> on line <b>6132</b><br /> 

Что я делаю не так?

Я получил аналогичную ошибку, мне пришлось прокомментировать строку в nusoap.php..something like:

 //$this->debug("$k = $v<br>"); 

и это было хорошо для меня.

Очевидно, что это только для отладки, поэтому не беспокойтесь о функциональности, потому что она должна быть такой же, если вы прокомментируете эту строку. Я думаю, когда вы создаете сложные данные (это означает, что в вашем случае массив внутри другого массива) nusoap не может распечатать его для отладки.

В любом случае удачи.

У меня такая же проблема. Вы можете преобразовать данные в строку, чтобы сохранить отладочную информацию для дальнейшего использования и удалить предупреждение

Искать этот код

 foreach(curl_getinfo($this->ch) as $k => $v){ $err .= "$k: $v<br>"; } $this->debug($err); 

И замените на это

 foreach(curl_getinfo($this->ch) as $k => $v){ if(is_array($v)){ $v = implode(" / ", $v); } $err .= "$k: $v<br>"; } $this->debug($err); 

Для последней версии nuSoap ниже будет решена ваша проблема:

НАЙТИ код ниже в nusoap.php

 $this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]"); 

в строке 6132 или что-то вокруг этого нет.

И КОММЕНТАРИЙ

 // $this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]"); 

Так как это просто для отладки. поэтому не стоит беспокоиться о каких-либо проблемах с функциональностью.