ホームページ  >  に質問  >  本文

PHP 8.1 は内部クラス SoapClient の機能を壊しますか?

PHP の SoapClient を使用し、PHP 8.1 と互換性のあるライブラリを作成しているときに、次の問題に遭遇しました:

SoapClient のすべてのプロパティは、以前はパブリックでしたが、現在はプライベートです。 そのため、最後の SOAP エラー ($soapClient->__soap_fault) を取得するようなことはもう不可能になります。しかし、何か問題が発生した場合、SoapClient のほとんどのメソッドは null を返すため、問題の内容を知る唯一の方法は、アクセスできなくなった __soap_fault を取得することです。

SoapClient プロパティにアクセスできない場合、メソッド __doRequest を使用するにはどうすればよいですか?

P粉615886660P粉615886660286日前432

全員に返信(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['例外'] => true を SoapClient コンストラクターに渡すことによって) 例外を有効にし、これらの例外を try/catch# # #それに応じて。これで解決しない場合は、正しく処理されなかった特定のエラーを含む新しい質問の方が役立つ可能性があります。

    返事
    0
  • キャンセル返事