PHP SOAP函数名必须是字符串?

PHP SOAP函数名必须是字符串?,php,web-services,soap,wsdl,webservice-client,Php,Web Services,Soap,Wsdl,Webservice Client,很抱歉发布了整个错误。基本上,我有两个在soap服务器上运行的函数,它们工作得很好。我添加了第三个函数“getk”,它没有比其他函数更复杂的功能。接受两个参数并返回一个数组。但是,在客户端调用此函数时,我得到以下错误 Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Server] Function name must be a string in /home/od2u/public_html/wp-content/plugins/lin

很抱歉发布了整个错误。基本上,我有两个在soap服务器上运行的函数,它们工作得很好。我添加了第三个函数“getk”,它没有比其他函数更复杂的功能。接受两个参数并返回一个数组。但是,在客户端调用此函数时,我得到以下错误

Fatal error: Uncaught SoapFault exception: 
[SOAP-ENV:Server] Function name must be a string in /home/od2u/public_html/wp-content/plugins/link-monitor/link-monitor.php:33 
Stack trace: #0 [internal function]: SoapClient->__call('getk', Array) 
#1 /home/od2u/public_html/wp-content/plugins/link-monitor/link-monitor.php(33): SoapClient->getk('3', 'wpmu1') 
#2 /home/od2u/public_html/wp-content/themes/twentyten/header.php(18): wsfKeywords('3', 'wpmu1') 
#3 /home/od2u/public_html/wp-includes/theme.php(1086): require_once('/home/od2u/publ...') 
#4 /home/od2u/public_html/wp-includes/theme.php(1062): load_template('/home/od2u/publ...', true) 
#5 /home/od2u/public_html/wp-includes/general-template.php(34): locate_template(Array, true) 
#6 /home/od2u/public_html/wp-content/themes/twentyten/index.php(16): get_header() 
#7 /home/od2u/public_html/wp-includes/template-loader.php(43): include('/home/od2u/publ...') 
#8 /home/od2u/public_html/wp-blog-header.php(16): require_once('/home/od2u/publ...') 
#9 /home/od2u/public_html/index.php(17): require( in /home/od2u/public_html/wp-content/plugins/link-monitor/link-monitor.php on line 33
我到处寻找如何分类的建议。这些函数确实存在,它并不是像美元符号或使用错误类型的括号那样愚蠢

我还清除并禁用了WSDL服务器和客户端的缓存

客户端呼叫:

$c->getk($site, $server);
$c是soap客户端,getk是函数名

功能服务器端:

function getk($website, $server)
{
    $ret_array('blah', 'blah2', 'blah3');
    return $ret_array;
}
并使用以下方法将其添加到soap服务器:

$server->addFunction(array("getk", "getLinks", "getDirectLinks"));

希望你们能帮忙:)

我想问题出在

$ret_array('blah', 'blah2', 'blah3');

解释器尝试将此作为函数调用解决,但找不到变量
$ret\u array

,我认为问题出在

$ret_array('blah', 'blah2', 'blah3');

解释器试图将此作为函数调用来解决,但找不到变量
$ret\u array

我也遇到了同样的错误,经过深入检查,问题似乎出在Soap服务器方面。 被调用的例程(在本例中是getk()函数)产生了一个致命错误,导致Soap服务器没有给出Soap客户端可以解释的正确响应。
如果有人有相同的错误,请检查Soap服务器的错误日志(如果可能)。您可能会发现被调用的函数产生了一个致命错误,并且“因此”没有返回任何xml。

我也有同样的错误,经过深入的检查,问题似乎出在Soap服务器方面。 被调用的例程(在本例中是getk()函数)产生了一个致命错误,导致Soap服务器没有给出Soap客户端可以解释的正确响应。
如果有人有相同的错误,请检查Soap服务器的错误日志(如果可能)。您可能会发现被调用的函数产生了一个致命错误,并且“因此”没有返回任何xml。

理论上,只要您使用内置类,这应该可以正常工作。但是您的
getk
函数定义中有语法错误。它应该是
$ret_array=array('blah','blah2','blah3')…没有那么远,我只是把它放在那里,因为在这一点上,函数的内容并不重要。谢谢,虽然lol,愚蠢的错误。理论上,只要你使用内置类,这应该可以很好地工作。但是您的
getk
函数定义中有语法错误。它应该是
$ret_array=array('blah','blah2','blah3')…没有那么远,我只是把它放在那里,因为在这一点上,函数的内容并不重要。谢谢,虽然lol,愚蠢的错误。它没有走那么远,我只是把它放在那里,因为在这一点上,函数的内容是不重要的。谢谢,虽然lol,愚蠢的错误。它没有走那么远,我只是把它放在那里,因为在这一点上,函数的内容是不重要的。谢谢,哈哈,愚蠢的错误。