PHP 7.0 으로 사용시 오류/경고문 해결법 - 2 배열변수의 첨자오류개선
PHP 7.0으로 변경하시는경우 오류가 발생하시죠
수많은 경고문도 로그에 쌓이게되고..
<주요문제점>
2. 배열의 첨자에 텍스트사용
<해결책>
1. 우선 E_ALL옵션으로 경고문을 죄다 노출합니다.
@마르스컴퍼니 님의 팁참고 https://sir.kr/so_note/46
2. 오류가 나타나는 영역들을 찾아갑니다.
3. [column_name] 으로 된부분을 ['column_name'] 으로 변경합니다.
(해결)
문제는 이것이 아니라 너무 많다는것이 문제이죠
<편법>
에디터들을 활용합니다.
에디터 마다 파일전체 일괄바꾸기가 존재합니다.
제가 주로 활요하는것은 notepad++ 을 사용합니다.
Acroedit나 editplus 도 존재하는것으로 알고있습니다.
전체파일들을 대상으로 변경시에는
(1) 백업필수
(2) 로컬에서 작업
(3) 여러번변경할 것을 인지한 후
notepad++을 예를들면
Ctrl+F를 누르면 찾기가 나오는데
3번째 탭은 [파일에서 찾기] 가 있습니다.
그중 배열의 첨자를 변경하는 패턴은
1. [ 를 [' 로 변경
(1) 디렉토리는 원하는 디렉토리로 이동 - 주로 스킨하위만 사용하세요 (이하중복설명생략)
(2) 찾을내용 : [
(3) 바꿀내용 : ['
(4) 모든하위폴더포함 체크 (이하 중복설명 생략)
우선 [모두찾기로 ] 검토를 해봅니다.
원하는 대상들이 맞으면
(5) 모두바꾸기 실행
한참 수행후 종료됩니다.
2. ] 를 '] 로 변경
(1) 찾을내용 : ]
(2) 바꿀내용 : ']
(3) 모두바꾸기 실행
------
여기서부터는 존재하는데도 변경된 대상을 원복시킵니다.
3. ['' 을 [' 로
(1) 찾을내용 : [''
(2) 바꿀내용 : ['
(3) 모두바꾸기 실행
4. ''] 을 '] 로
(1) 찾을내용 : '']
(2) 바꿀내용 : ']
(3) 모두바꾸기 실행
또 검토해보면 대상이 있겠죠
배열첨자를 ['idx'] 가 아닌 ["idx"] 로 사용한경우
5. ['" 을 [' 로
(1) 찾을내용 : ['"
(2) 바꿀내용 : ['
(3) 모두바꾸기 실행
6. "'] 을 '] 로
(1) 찾을내용 : "']
(2) 바꿀내용 : ']
(3) 모두바꾸기 실행
그럼 끝일까요?
아닙니다.
또 존재합니다.
7. [$i]와 같이 된경우가 변경되었으면 ['$i'] 로 되어있을겁니다.
이게 문제가 없는것 같으나 숫자로 작동될 첨자가 문자로 이식되서 오작동합니다.
(1) 찾을내용 : ['$
(2) 바꿀내용 : [$
(3) 모두바꾸기 실행
8. 짝을 맞출때 변수의 끝은 찾기가 어렵죠
이번엔 일괄이 불가능하지만
전체 대상을 찾을수는 있습니다.
(1) 찾을내용 : [$
(2) 모두찾기 실행
(3) 찾아진내용을 하나씩 클릭해서 변수첨자뒤에 존재하는 [$i'] 와 같이된부분에서
'] 를 ] 로 재변경합니다.
--------
상당히 번거롭게 작업되는 내용이긴합니다만
특정 스킨이 오래된 형태일경우
스킨하위내용을 대상으로 디렉토리를 지정해서 처리하면
원활한 결과를 얻으실수있습니다.
본 내용은 그누보드 사이트에 팁으로 제가 직접 공개한 내용입니다.
PHP 7, php7.0업그레이드 오류, php 7.x, php 5 to 7, error, warining, array,