php 최 적 실천-값 이 null 또는 false 인지 검사

4765 단어 PHP
====연산 자 를 사용 하여 null 과 불 false 값 을 검사 합 니 다.
PHP 의 느슨 한 유형 시스템 은 변수의 값 을 측정 하 는 다양한 방법 을 제공 합 니 다.그러나 이것 도 많은 문 제 를 일 으 켰 다.==을 사용 하여 값 이 null 이나 false 인지 확인 합 니 다.이 값 이 실제 빈 문자열 이나 0 이면 false 로 오보 할 수 있 습 니 다.isset 은 이 값 이 null 이나 false 인지 아 닌 변수 가 있 는 지 를 검사 하 는 것 이 므 로 여기 서 사용 하 는 것 은 적절 하지 않 습 니 다.
is_null()함 수 는 하나의 값 이 null 인지,is 인지 정확하게 검사 할 수 있 습 니 다.bool 은 불 값(예 를 들 어 false)인지 확인 할 수 있 지만 더 좋 은 선택 이 있 습 니 다.===연산 자===두 값 이 동일 한 지 확인 하 는 것 은 PHP 완화 형 세계 와 같 지 않 습 니 다.그것 도 isnull()과 isbool()이 빠 르 고 함수 로 하 는 것 보다 더 깨끗 하 다 고 생각 하 는 사람 도 있다.
예시
<?php
$x = 0;
$y = null;

// Is $x null?
if($x == null)
    print('Oops! $x is 0, not null!');

// Is $y null?
if(is_null($y))
    print('Great, but could be faster.');

if($y === null)
    print('Perfect!');

// Does the string abc contain the character a?
if(strpos('abc', 'a'))
    // GOTCHA!  strpos returns 0, indicating it wishes to return the position of the first character.
    // But PHP interpretes 0 as false, so we never reach this print statement!
    print('Found it!');

//Solution: use !== (the opposite of ===) to see if strpos() returns 0, or boolean false.   
if(strpos('abc', 'a') !== false)
    print('Found it for real this time!');
?>

함정.
0 또는 불 false 함수 의 반환 값 을 테스트 할 때,예 를 들 어 strpos()는 항상===!==를 사용 합 니 다.그렇지 않 으 면 문제 가 발생 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기