최근 프로젝트의 소스 코드를 읽어보니 빈 함수, isset, is_null 함수(언어 기능)가 소스 코드에 무분별하게 사용되고 있는 곳이 분명 있습니다. 이러한 사항을 올바르게 이해하지 못하면 후속 개발에 어려움을 겪을 수 있습니다.
1.empty 사용법
bool 비어 있음(혼합 var)
var가 비어 있지 않거나 0이 아닌 값이면 비어 있음() FALSE 를 반환합니다. 즉, "", 0, "0", NULL, FALSE, array(), var $var; 및 속성이 없는 객체는 비어 있는 것으로 간주됩니다. var가 비어 있으면 TRUE
isset -- 변수가 설정되었는지 확인
설명
var가 존재하면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
unset()을 사용하여 변수가 해제된 경우 더 이상 isset()이 아닙니다. isset()을 사용하여 NULL로 설정된 변수를 테스트하면 FALSE를 반환합니다. 또한 NULL 바이트("0")는 PHP의 NULL 상수와 동일하지 않습니다.
참고: 변수가 존재하지 않는 경우 isset()이나 empty() 모두 is_null()을 보고하지 않으며 is_numeric()은 오류를 보고합니다.
[0을 구별하는 방법) ,'' 다음 배열의 ,null] 세 개의 요소? (1) 차이 0:
$a = 0; isset($a) && is_numeric($a) === true
(2) 차이 ''
$a = ''; empty($a) && $a=== ''
(3) Difference null
$a = null; is_null($a);
게다가 Form을 제출할 때 $_REQUEST['status'인 경우 변수가 존재하는지 확인해야 하는 경우가 종종 있습니다. ] = 0 ; true를 반환하려면 empty($_REQUEST['status'])를 사용하고, 비어 있지 않다고 판단하려면 isset($_REQUEST['status'])를 사용하세요.
3. ():
bool is_null (mixed $var) (php.net 공식 문서의 함수 정의)
1입니다. NULL
2 값이 할당됩니다. 이는 unset() 이후에 정의되지 않았습니다. ) 변수, 정의되지 않은 것 아닌가요?
몇 가지 예를 살펴보겠습니다.
$myvar = NULL; var_dump(is_null($myvar)); // TRUE $myvar1; var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable $num = 520; unset($num); var_dump(is_null($num)); //TRUE Notice: Undefined variable var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable $myvar = 0; is_null($myvar); // FALSE $myvar = FALSE; is_null($myvar); // FALSE $myvar = ''; is_null($myvar); // FALSE