A-A+
php isset()和php empty()的区别
在判断PHP变量时经常会遇到 isset() 函数和 empty() 的函数,而在一般的判断中,好像这两个PHP函数没什么太大的区别,首先声明一点,这两个函数都是进行判断 php 变量的,这是一个共同点,我们来看一下在判断变量中有些什么样的区别。
empty() 判断一个变量是否为空,isset() 判断一个变量是否已经设置,这是最本质的区别。
另外empty() 还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量等同于空,即相当于没有设置。而 isset() 判断的是这个变量有没有进行设置,即使变量设置的为空,但是已经定义了,此时isset返回 true。
下面是一段简段的两个函数区别的研究:
<?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> ';
}
?>