首页  >  问答  >  正文

PHP 8.1 是否破坏了内部类 SoapClient 的功能?

在制作一个使用 PHP 的 SoapClient 且与 PHP 8.1 兼容的库时,我遇到了这个问题:

SoapClient 的所有属性在以前是公开的时现在都是私有的。 因此,诸如获取最后一个肥皂故障($soapClient->__soap_fault)之类的事情不再可能。但如果出现问题,SoapClient 的大多数方法都会返回 null,而了解问题所在的唯一方法是获取不再可访问的 __soap_fault

在无法访问 SoapClient 属性的情况下,我应该如何使用方法 __doRequest

P粉615886660P粉615886660285 天前430

全部回复(1)我来回复

  • P粉969666670

    P粉9696666702023-12-13 13:23:55

    查看旧的 SoapClient 文档,似乎直接访问属性总是错误 - 对于 php7.2 例如根据回程机器, __soap_fault 根本没有记录(参见 https://web.archive.org/web/20171211100753/http://us3.php.net/manual/en/class.soapclient。 php)

    文档说明如下:

    我想说,请确保启用了异常(通过将 $options['exceptions'] => true 传递给 SoapClient 构造函数)并在 try/catch 中处理这些异常 相应地。如果这没有帮助,一个带有未正确处理的具体错误的新问题可能会更有帮助。

    回复
    0
  • 取消回复