>  Q&A  >  본문

Sage Pay/Opayo 양식 통합 - PHP 8.1 - PHP 치명적인 오류: 잡히지 않은 오류: null에 'start' 속성을 할당하려고 시도했습니다.

비슷한 문제가 있지만 내 (상속된) 코드를 사용하여 작업할 수 있는 솔루션을 얻을 수 없으므로 도움을 주시면 대단히 감사하겠습니다.

양식 통합을 통해 Sage Pay / Opayo 결제 게이트웨이를 사용합니다. 완료/실패 시 고객은 암호화된 _GET 문자열을 사용하여 당사 웹사이트의 URL로 리디렉션됩니다. 복호화 후 getToken 함수( $values = getToken($Decoded); )를 호출하여 배열에서 값을 가져옵니다.

모든 마커가 항상 채워지는 것은 아니지만 이러한 null 값이 문제의 원인일 수 있다고 생각됩니다.

이 코드는 PHP 7.1에서는 잘 실행되지만 PHP 8.1에서는 예외가 발생합니다.

[2023-05-03 15:12:15 유럽/런던] PHP 치명적인 오류: 잡히지 않은 오류: /home/sitename/public_html/ch_functions.php:166에서 null에 'start' 속성을 할당하려고 시도 중입니다. 스택 추적: #0 /home/sitename/public_html/not_completed.php(32): getToken('VendorTxCode=AP...') #1 {메인} /home/sitename/public_html/ch_functions.php 라인 166에 던지기

코드는 $resultArray[$i]->start = $start;에서 실패하는 부분은 다음과 같습니다.

으으으으

P粉872182023P粉872182023380일 전516

모든 응답(1)나는 대답할 것이다

  • P粉111927962

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

    $resultArray[$i]을 객체로 참조했는데 배열이 비어 있어서 참조할 객체가 없습니다. PHP 7.4 이하에서는 다음을 수행할 수 있습니다.

    으아악

    PHP는 $x[0] 处动态创建一个 stdClass 객체에 foo 속성을 동적으로 생성하지만 다음과 같은 경고를 표시합니다.

    귀하는 현재 이 경고를 표시하지 않거나 무시하고 있습니다. PHP 8.0에서는 이제 치명적인 오류가 발생합니다. 따라서 값을 설정하기 전에 빈 개체를 만드세요.

    으아악

    또는:

    으아악

    회신하다
    0
  • 취소회신하다