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