在製作一個(gè)使用 PHP 的 SoapClient 且與 PHP 8.1 相容的函式庫時(shí),我遇到了這個(gè)問題:
SoapClient 的所有屬性在以前是公開的時(shí)現(xiàn)在都是私有的。
因此,諸如獲取最後一個(gè)肥皂故障($soapClient->__soap_fault
)之類的事情不再可能。但如果出現(xiàn)問題,SoapClient 的大多數(shù)方法都會(huì)傳回 null,而了解問題所在的唯一方法是取得不再可存取的 __soap_fault
。
在無法存取 SoapClient 屬性的情況下,我該如何使用方法 __doRequest
?
查看舊的SoapClient
文檔,似乎直接訪問屬性總是錯(cuò)誤- 對(duì)於php7.2 例如根據(jù)回程機(jī)器,__soap_fault
根本沒有記錄(參見https:/ /web.archive.org/web/20171211100753/http://us3.php.net/manual/en/class.soapclient. php)
文檔說明如下:
我想說,請(qǐng)確保啟用了異常(通過將$options['exceptions'] =>?true
傳遞給SoapClient 構(gòu)造函數(shù))並在try/catch 中處理這些異常
相應(yīng)地。如果這沒有幫助,一個(gè)帶有未正確處理的特定錯(cuò)誤的新問題可能會(huì)更有幫助。