PHP $ client-> __ soapCall('method',$ params); VS. $客户端 - >方法($ PARAMS);

时间:2013-08-28 17:10:00

标签: php soap

我正在用PHP创建一个SOAP客户端。我的大部分电话都是这样的

$client->__soapCall('method', $params)

据我所知,这是在WSDL中调用方法的两种方法之一,另一种方法是:

$client->method($params);

我只能在调用只需要字符串的方法时获得第二种工作方式。使用需要整数的方法会给我这个错误:

The value '' cannot be parsed as the type 'Int32'.'

这两个请求的工作方式有何不同?

1 个答案:

答案 0 :(得分:2)

直接调用($ client-> method())使用不推荐使用的魔法类方法__call()。如果您通过扩展客户端类来实现SoapClient(请参阅下面的示例),则可以将__call()实现为“callthru”到__soapCall()。

class mySoapClient extends SoapClient {
    public function __call($method, $parameters) {
        return $this->__soapCall($method, $parameters);
    }
}

如果你没有通过扩展实现你的客户端,使用直接调用($ client-> method())是一个坏主意,因为它最终将从PHP中删除。