[PHP] PHP 7.x PHP 8.x에서의 조건문

if ($a < 0) echo __function($a);


위와 같은 PHP 코드가 문제를 일으켰다.


Comparison    | Before | After
------------------------------
 0 == "0"     | true   | true
 0 == "0.0"   | true   | true
 0 == "foo"   | true   | false
 0 == ""      | true   | false
42 == "   42" | true   | true
42 == "42foo" | true   | false

$a 값이 "" 인경우 PHP 8.x 에서는 ($a < 0) 가 true 가 되어 ___func($a)가 수행되는 문제가 발생


if ((int)$a < 0) echo __function($a);

처럼 int로 변환후 비교하도록 수정해서 처리 ㅠ.ㅠ


PHP 에서 조건문에 empty 를 이용한 파라미터 검사 같은경우 문제가 많음.

파라미터가 있다 없다를 isset으로 검사하는 게 문제가 될 수 있음.

디폴트 값이 0 또는 "" 가 같이 false로 처리되는데

0의 경우는 값을 입력한 것으로도 봐야 되기 때문에 파라미터가 있다없다의 경우는 strlen($a)로 처리하는 것이 좋을 것 같다.


default 값의 경우 0을 왠만하면 안쓰는게 좋을 것 같다.. 그러면 그냥 empty로 해결될 수 있음 ^.^ 그러나 현실은 0이 대부분이라...

function pOk($p)

{

     return strlen($p);

}


처럼 만들어 사용하는 것이 무난한 방법이 될 듯.









0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
102 [Git] git switch branch명 결과를 ftp로 업로드 하려면 최고관리자 06-02 10,883
101 [Git] git switch branch명 에서 바뀐파일(modifed File) 확인 최고관리자 06-02 4,838
100 [MySql] 테이블 내용 복사하기(인덱스 키 추가하기) 최고관리자 05-24 2,696
99 [Android] 안드로이드에서 PDF 미리보기가 안되는 이유 최고관리자 04-28 3,414
98 [PHPOffice] PHP 8.0 에서 PHPOffice 엑셀저장이 안되는 경우 최고관리자 04-26 1,682
97 [Javascript] window.location Value 최고관리자 04-18 1,613
96 [Git] git clone 과 git pull 의 차이점 최고관리자 04-14 1,331
95 [Git] 특정폴더만 pull 하기 최고관리자 04-14 1,340
94 [Upload] Nginx + PHP7.4 Upload 설정 최고관리자 04-10 1,220
93 [https] Certbot을 활용한 HTTPS 적용과 리다이렉트(ubuntu-nginx) 최고관리자 04-02 9,484
92 [Linux] Bash 명령어 활용 최고관리자 03-26 1,604
91 [MySQL] 중복 데이타 삭제하기 최고관리자 03-16 2,368
90 [Git] 중앙 원격 저장소, 자신의 원격 저장소, 로컬 저장소의 개념 최고관리자 03-01 1,436
89 [GitHub] Git 브랜치의 종류 및 사용법 (5가지) 최고관리자 03-01 1,385
88 Git 한글 메뉴얼 최고관리자 02-25 1,305
87 ERROR 1698 : Access denied for user 'root'@'localhost' 문제 해결 최고관리자 02-24 1,340
86 NGINX + PHP71 + PHP-FPM 설치하기 최고관리자 02-23 1,222
85 (function() { })() 의 의미는? 최고관리자 02-16 1,329
84 [참고] 부트스트랩(bootstrap) 사이트 개발 최고관리자 10-09 1,653
83 [JS] 디바운스(Debounce)와 스로틀(Throttle ) 그리고 차이점 최고관리자 09-14 1,853