首頁  >  問答  >  主體

PHP 8.1 是否破壞了內部類別 SoapClient 的功能?

在製作一個使用 PHP 的 SoapClient 且與 PHP 8.1 相容的函式庫時,我遇到了這個問題:

SoapClient 的所有屬性在以前是公開的時現在都是私有的。 因此,諸如獲取最後一個肥皂故障($soapClient->__soap_fault)之類的事情不再可能。但如果出現問題,SoapClient 的大多數方法都會傳回 null,而了解問題所在的唯一方法是取得不再可存取的 __soap_fault

在無法存取 SoapClient 屬性的情況下,我該如何使用方法 __doRequest

P粉615886660P粉615886660335 天前482

全部回覆(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
  • 取消回覆