programing

메시지:null 유형의 값에 대한 어레이 오프셋에 액세스하려고 합니다.

sourcejob 2022. 11. 3. 21:48
반응형

메시지:null 유형의 값에 대한 어레이 오프셋에 액세스하려고 합니다.

몇 년째 사용하고 있는 스크립트(송신기)에서 이 에러가 여러 번 발생하고 있습니다만, 안타깝게도 작성자에 의해 관리되고 있지 않습니다.

Message: Trying to access array offset on value of type null

제 서버는 PHP 7.4로 업그레이드 되었습니다만, 매우 만족하고 있기 때문에, 문제를 수정해, 스크립트를 스스로 관리할 수 있는 방법을 찾고 있습니다.

에러를 나타내는 것은, 다음과 같습니다.

$len = $cOTLdata['char_data'] === null ? 0 : count($cOTLdata['char_data']);

$cOTLdata가 함수에 전달됩니다.

public function trimOTLdata(&$cOTLdata, $Left = true, $Right = true)
{
    $len = $cOTLdata['char_data'] === null ? 0 : count($cOTLdata['char_data']);
    $nLeft = 0;
    $nRight = 0;
    //etc

mpdf btw에 포함되어 있지만 github 저장소의 파일을 덮어쓰는 것만으로는 오류를 수정할 수 없습니다.

이 일이 발생하는 이유는$cOTLdatanull이 아니라 인덱스입니다.'char_data'는 존재하지 않습니다.이전 버전의 PHP는 이러한 오류에 대해 덜 엄격하고 묵묵히 오류/알림을 삼켰지만 7.4는 더 이상 이 작업을 수행하지 않습니다.

인덱스가 존재하는지 여부를 확인하려면 isset()을 사용합니다.

isset($cOTLdata['char_data'])

즉, 선은 다음과 같이 됩니다.

$len = isset($cOTLdata['char_data']) ? count($cOTLdata['char_data']) : 0;

참고로 === null은 본질적으로 이미 하는 일이기 때문에 3원 연산자의 경우와 다른 경우를 전환했다(양수인 경우).

언급URL : https://stackoverflow.com/questions/59336951/message-trying-to-access-array-offset-on-value-of-type-null

반응형