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> '; } ?>