티스토리 뷰
php7환경에서 작업중에 다음의 코드를 작성했는데 의도와는 다른 음직이을 보였다.
$zero = 0;
$val = "abc";
if ($zero == $val) {
...
}
if가 false가 되어야 한다고 생각했지만 true가 되었다.
이유를 알아보니 다음과 같은 이슈가 있었다.
PHP 7
0 == 'foobar' // true
0 == '' // true
4 == '4e' // true (4e is cast as a number and becomes 4)
PHP 8
0 == 'foobar' // false
0 == '' // false
4 == '4e' // false ('4e' is considered non-numeric therefore 4 is cast as a string and becomes '4')
즉 php7 에서는 int값과 비교를 할경우 비교값이 int로 형변환 된다는 점이다.
애시당초 넘어오는 값에 0를 사용하는 것은 피하면 좋겠지만 주의가 필요하다.
'개발지식 > PHP' 카테고리의 다른 글
PHP Trait란 (0) | 2024.08.29 |
---|---|
PHP의 Null, 공백 체크 (0) | 2023.11.14 |
PHP 7, 8변경점 (0) | 2023.11.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Laravel의 쿼리빌더와 Eloquent의 차이
- Laravel 페이지네이션
- Laravel 인증 라이브러리
- 상류공정
- Laravel post등록
- Laravel artisan 명령어 정리
- DATE DATETIME TIMESTAMP 차이점
- PHP int 0값
- Laravel 설정
- TCP
- php trait
- PHP의 Null
- artisan serve란
- git branch 날짜순
- git branch 정렬
- vue.js의 computed 속성
- Laravel Carbon
- Laravel 이미지 폴더
- Laravel 데이터 삭제 처리
- Laravel vite webpack
- Laravel Pagination
- Laravel seeder 데이터
- 생소한 일본어
- Laravel 라이프 사이클
- Laravel 서비스 프로바이더
- Laravel vaildation
- PHP 7 8변경점
- Laravel 데이터 취급 비교
- Laravel 서비스 컨테이너
- Laravel 컴포넌트 참조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함