在製作一個使用 PHP 的 SoapClient 且與 PHP 8.1 相容的函式庫時,我遇到了這個問題:
SoapClient 的所有屬性在以前是公開的時現在都是私有的。
因此,諸如獲取最後一個肥皂故障($soapClient->__soap_fault
)之類的事情不再可能。但如果出現問題,SoapClient 的大多數方法都會傳回 null,而了解問題所在的唯一方法是取得不再可存取的 __soap_fault
。
在無法存取 SoapClient 屬性的情況下,我該如何使用方法 __doRequest
?
查看舊的
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 中處理這些異常
相應地。如果這沒有幫助,一個帶有未正確處理的特定錯誤的新問題可能會更有幫助。