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

Sage Pay/Opayo フォームの統合 - PHP 8.1 - PHP 致命的エラー: キャッチされないエラー: null にプロパティ 'start' を割り当てようとしました

同様の質問があるのはうれしいですが、私の (継承された) コードでは解決策が得られません。そのため、ご提供いただけると大変助かります。

当社では、フォーム統合を介して Sage Pay / Opayo 支払いゲートウェイを使用しています。 完了または失敗すると、顧客は暗号化された _GET 文字列を使用して Web サイト上の URL にリダイレクトされます。 復号化後、 getToken 関数 ( $values = getToken($Decoded); ) を呼び出して、配列から値を取得します。

ただし、すべてのタグが常に設定されるわけではないため、これらの null 値が問題の原因である可能性があると考えられます。

このコードは PHP 7.1 では正常に動作しますが、PHP 8.1 では例外がスローされます:

[2023-05-03 15:12:15 Europe/London] PHP 致命的エラー: キャッチされないエラー: /home/sitename/public_html/ch_functions.php:166 の null にプロパティ 'start' を割り当てようとしています スタックトレース: #0 /home/サイト名/public_html/not_completed.php(32): getToken('VendorTxCode=AP...') #1 {メイン} /home/sitename/public_html/ch_functions.php 行 166

をスローします

コードは、$resultArray[$i]->start = $start; で失敗するものは次のとおりです:

ああああ

P粉872182023P粉872182023431日前557

全員に返信(1)返信します

  • P粉111927962

    P粉1119279622023-09-08 15:29:37

    $resultArray[$i] をオブジェクトとして参照しましたが、配列が空であるため、参照するオブジェクトがありません。 PHP 7.4 以前のバージョン では、次のことができます:

    リーリー

    PHP は stdClass オブジェクトを $x[0] に動的に作成し、その後 foo プロパティを動的に作成しますが、警告が発行されます:

    現在、この警告を抑制または無視しています。 PHP 8.0 では、これにより致命的なエラーが生成されるようになりました。したがって、値を設定する前に空のオブジェクトを作成してください:

    リーリー ###または:### リーリー

    返事
    0
  • キャンセル返事