본문 바로가기

개발/PHP 라라벨

[오류사항] Trying to access array offset on value of type int

라라벨 버전: 5.6

 

php 7.1 에서 7.4 로 업그레이드 하자 엑셀을 읽어오는 코드에서 아래와 같은 오류가 발생했다.

 

Trying to access array offset on value of type int

 

원인


엑셀의 value 의 type 값을 가져오는 부분에서 value 가 숫자인 경우  $pValue[0] === '=' 이런식의 비교는 오류를 발생시킨다.

 

 

수정


실제 vendor 내의 파일을 수정해서는 안되지만 (업데이트시 삭제되어 버림) 이미 지원이 끝났기때문에 직접 소스를 수정하는 방법을 택했다.

 

vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php 82번째줄

 

} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {

 

이것을 아래와 같이 수정했다.

 

} elseif (!is_int($pValue) && !is_float($pValue) && $pValue{0} === '=' && strlen($pValue) > 1) {