PHP의 isset() 함수는 일반적으로 변수가 설정되었는지 감지하는 데 사용됩니다.
형식: bool isset (mixed var [, mix var [, ...]])
함수: Detect 변수 설정 여부
반환값 :
변수가 없으면 FALSE를 반환
변수가 존재하고 값이 NULL이면 FALSE를 반환
변수가 존재하고 해당 값이 NULL이 아닌 경우 TRUE를 반환합니다.
여러 변수를 동시에 확인할 때 각 항목이 이전 요구 사항을 충족하는 경우에만 TRUE가 반환되고, 그렇지 않으면 결과는 FALSE가 됩니다.
버전: PHP 3, PHP 4, PHP 5
추가 지침:
unset()을 사용하여 변수를 해제한 후에는 더 이상 isset()이 아닙니다.
PHP 함수 isset()은 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 구문 분석 오류가 발생합니다.
상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요. 반환값:
변수가 존재하지 않으면 TRUE를 반환
변수가 존재하고 그 값이 "", 0, "0", NULL,, FALSE, array(), var $var ; 속성이 없는 개체는 TURE를 반환합니다.
변수가 존재하고 값이 "", 0, "0", NULL, FALSE, array(), var $var 및 속성이 없는 개체인 경우 반환됩니다. FALSE
버전: PHP 3, PHP 4, PHP 5
추가 지침:
empty() =!(부울) var의 반환 값이지만 변수가 정의되지 않았기 때문에 경고 메시지가 생성되지 않습니다. 자세한 내용은 부울로 변환을 참조하세요.
empty()는 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 Paser 오류가 발생하고 작업이 종료됩니다.
상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요.
예: empty()와 isset()의 단순 비교
<?php $var = 0; // 结果为 true,因为 $var 为空 if (empty($var)) { echo '$var is either 0 or not set at all'; } // 结果为 false,因为 $var 已设置 if (!isset($var)) { echo '$var is not set at all'; } ?>
<?php error_reporting(E_ALL); echo '<B>未定义$var</b><Br>'; echo "isset测试:<Br>"; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var = \'\'</b><Br>'; echo "isset测试:<Br>"; $var = ''; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var = 0</b><Br>'; echo 'isset测试:<Br>'; $var = 0 ; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var = null</b><Br>'; echo 'isset测试:<Br>'; $var = null ; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var ="php"</b><Br>'; echo 'isset测试:<Br>'; $var = "php"; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } ?>
$id=0; empty($id)?print "It's empty .":print "It's $id ."; //结果:It's empty . print "<br>"; !isset($id)?print "It's empty .":print "It's $id ."; //结果:It's 0 .
이는 변수 처리 기능을 사용할 때 변수의 값이 0일 수 있는 경우 empty()를 사용할 때 주의해야 한다는 의미입니다. 이때 isset으로 교체하세요. 더 똑똑해지세요.
PHP 페이지의 URL tail 매개변수가 id=0(예: test.php?id=0)으로 표시되면 비교를 시도하세요.
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1 if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
if(empty($id)) $id=1; print $id; // 得到 1 if(!isset($id)) $id=1; print $id; //得到 0
要说它们的联系,其共同点就是empty()和 isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从 empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。
如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;
如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;
如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;
手册中对empty()的解释如下:
描述bool empty( mixed var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,”"、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
手册中对isset()的解释如下:
isset()检测变量是否设置
描述bool isset ( mixed var [, mixed var [, ...]] )
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节(”?”)并不等同于 PHP 的 NULL 常数。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数
更多PHP isset()与empty()的使用区别详解相关文章请关注PHP中文网!