0


我是这个 PHP SOAP 的新手。(SoapClient)
我有点困惑何时使用以及何时使用我从中获得的功能_soapCall();_getFunctions();

我得到的回应 __getFunctions()
EstimationResponse
Estimation(Estimation $parameters)

什么是正确的?
$client->__soapCall("Estimation", $params);
或者
$client->Estimation($parameters);
我都尝试了但没有结果或 NULL 我什么时候可以使用什么?
谢谢

4

2 回答 2

1

不要紧。

SoapClient 提供了一个接口,它神奇地允许调用在 WSDL 中找到的每个 SOAP 方法作为实例化客户端的方法。但是这种魔法在内部被映射到对__soapCall.

于 2013-09-15T18:22:07.937 回答
0

的目的__soapCall是让您可以更灵活地调用函数。由于魔术方法的参数和返回的参数只是 SOAP 服务本身定义的,因此它们不能包含用于 PHP SOAP 库本身的信息。

例如,在没有 WSDL 文件的情况下,您仍然可以创建SoapClient对象,但 PHP 将无法将“魔术”函数映射到适当的动词。__soapCall包括一个options允许您手动指定将由 WSDL 提供的详细信息的参数。

“魔术”方法的另一件棘手的事情是发送和接收“SOAP 标头” - 带外信息,例如身份验证或会话详细信息。这些可以通过第 4 个和第 5 个参数来处理__soapCall

简而言之,如果你能用魔法方法做你需要做的事情,那就使用它们;如果您发现自己遇到了限制,请检查__soapCall直接调用是否有帮助。

于 2013-09-15T20:19:54.480 回答