SOAP SDL资源ID#251

时间:2016-12-19 23:40:12

标签: php soap

我之前从未使用过SOAP,而且当我打印出一个数组时,我得到了这个。有人能告诉我它是否正常工作?我不确定资源ID代表什么,我找不到答案..

$this->client = new SoapClient("https://api.cvent.com/soap/V200611.ASMX?WSDL", array('trace' => true, 'exceptions' => true));
echo '<pre>';print_r($this->client);echo '</pre>';

SoapClient Object
(
    [trace] => 1
    [_soap_version] => 1
    [sdl] => Resource id #251
)

如果有人能帮助我,那就太好了。

1 个答案:

答案 0 :(得分:0)

很高兴您解决了您的问题。 无论如何,我还是想弄清楚 sdl 是什么以及如何使用它。

我检查了 SOAP 扩展源代码,看起来资源代表已解析和解释的 WSDL,它在内部用于几乎所有 SoapClient 方法来查找和返回定义数据。

#L379 le_sdl = zend_register_list_destructors_ex(delete_sdl_res, NULL, "SOAP SDL", module_number);

le_sdl 的类型是 sdlPtr(服务定义语言指针?),并且在整个过程中都被引用。

https://github.com/php/php-src/blob/7bbc85f16ac7b54b3cdbadc787518aed33369b7e/ext/soap/soap.c

我不知道为什么我们可以将此资源视为公共属性 SOAP_GLOBAL(sdl),因为它看起来不能被任何 PHP 函数读取。 它不在已定义的 resource types 列表中,而 Soap documentation 明确表示该扩展没有任何已定义。

<块引用>

这个扩展没有定义资源类型。