PHP中的'isset()'和'!empty()'有什么区别?

Isset功能

ISSET检查变量以查看是否已设置。换句话说,它检查变量是否为除NULL以外的任何值或未分配值。如果变量存在并且具有非NULL的值,则ISSET返回TRUE。这意味着设置了分配了“”,“ 0”,“ 0”或“ FALSE”的变量,因此对于ISSET为TRUE。

示例

<?php
   $val = '0';
   if( isset($val)) {
      print_r(" $val is set with isset function <br>");
   }
   $my_array = array();
   echo isset($my_array['New_value']) ?
   'array is set.' :  'array is not set.';
?>

输出结果

这将产生以下输出-

0 is set with isset function
array is not set.

空功能

EMPTY检查变量是否为空。空解释为:“”(空字符串),0(整数),0.0(浮点数),“ 0”(字符串),NULL,FALSE,array()(空数组)和“ $var;” (已声明的变量,但在类中没有值。

示例

<?php
   $temp_val = 0;
   if (empty($temp_val)) {
      echo $temp_val . ' is considered empty';
   }
   echo "nn";
   $new_val = 1;
   if (!empty($new_val)) {
      echo $new_val . ' is considered set';
   }
?>

输出结果

这将产生以下输出-

0 is considered empty 1 is considered set