티스토리 뷰
이전 버전과 호환되지 않는 변경 사항
이전 버전과 호환되지 않는 것으로
가장 큰 문제가 있다.
애초에 변수에 어떤 값을 담더라도 좀 자유도가 높은게 php였는데 이것이 좀더 엄격하게 된것같다.
그래서 기본 조건문에서는 애초에 비교가 될수없던 것들을 false 로 처리했는데
사라진 함수나 추가된 함수 같은건 직관적으로 처리되지만
if ("" < 0 ) 와 같은 .. 문제
이것이 바로 직관적으로 볼수없는게 해당 위치로
if($A < 0) 이렇게 작성되어있다면
이것은 $A의 값이 변수를 가져오는지 숫자를 가져오는지 등을 파악해야되는데 $A값이 어디에서 오는지 그 흐름을 다 쫓아가야하고 혹시라도 Database에서 가져오는 것이라면 해당 컬럼(혹은 필드)의 구조를 변경해야되는 상황이 될수있다.
그런데 이것의 제일 고약한 점은 기존에는 당연히 저 조건은 false를 반환했기에
알고리즘 상에서 수많은 부분이 false로 처리되던것들이
true로 처리되어서 코드에러로 출력되지 않고 사이트에 오작동을 하거나 단순히 오류가 아닌 전달되는 데이타가 달라지는 경우는 웹화면에서 기능오류로 파악되지 않고
차후에 저장된 데이타를 혹은 주고받는 데이타 값이 달라졌을수 있어서 이문제를 파악하는데 수많은 시간이 지난 후에 발견될수도 있을 것이다.
따라서
5.x를 8.x로 업그레이드 된 상태로 서버를 옮기는 작업은 일반 규모에서는 불가능하고 이런 디버깅 작업을 계속 할 연속적으로 소속된 직원(0명)이 있는 경우에 진행이 가능하다.
사이트 이사의 경우 기존에 5.x라 하면 8.x로 해야하고
8.x에서는 조건문에서 변수의 처리에 대해서는 신중하게 작성해야하고 애초에 변수 자체에 담기는 값이
숫자인지 변수인지..그리고 가령 문자열에서 숫자를 추출하거나 하는 경우 등에서도 항상 데이타타입에 대해서
주의표시를 하고 다음으로 넘어가게 코드를 만들어야된다.
5.x->7.x로 이사가 그나마 현실적이고.
*배열의 키값에 ''감싸기 주의 , 쿼리문등에서 ''안에 들어갈때 중괄호 주의
*제거된 함수 처리
*등 바뀐 부분에 고민하면될것이다.
8.x의 가장 큰 호환성 문제는
코드에서 값이 없을때 빈값 < 0 을 false로 이용하던 조건들을 전부 수정해야하는 부분이다.
저것을 단순히 음수인지를 검사한게 아니라 입력받지 못했을때도 통과시키는 걸로 처리한게 많았을텐데
아이구!
https://www.php.net/manual/en/migration80.incompatible.php
PHP: Backward Incompatible Changes - Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
www.php.net
'프로그래밍' 카테고리의 다른 글
php에서 빈값을 숫자형태의 데이타베이스에 자동처리할때의 문제 (0) | 2024.11.01 |
---|---|
킴스큐 php 버전 업그레이드 마이그레이션 서버이사 작업 설명 (1) | 2024.10.30 |
php8.x 에서 생기는 오류 빈값과 0을 비교가 가능하다. (0) | 2024.10.26 |
모바일에서 이미지클릭만 되고 다운받기는 안되게 하고싶을때 (0) | 2024.10.22 |
쇼피파이 api로 주문내역에서 통관번호 가져오기,송장번호 업데이트. (0) | 2024.08.27 |
- Total
- Today
- Yesterday
- 아파치
- 오토셋
- 셀레니움
- Fullcalendar
- 윈도우
- 파이썬
- 파이선
- python
- 그누보드
- lsposed
- 제로보드
- Magisk
- 유튜브
- 멀티계정
- xe
- Apache
- SSL
- .htaccess
- 아미나
- 루팅
- 당근
- 텔레그램봇
- php8
- 에러
- 클라우드플레어
- php
- 그누보드5
- 텔레그램
- 회원가입
- Cloudflare
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |