A-A+

php isset()和php empty()的区别

2012年06月02日 PHP技术文章 暂无评论 阅读 82 views 次

在判断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> ';
   }
?>
标签:

给我留言