개발/PHP 라라벨
[오류사항] Trying to access array offset on value of type int
워킹맘개발자
2021. 3. 10. 16:00
라라벨 버전: 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) {