为什么在 PHP 中要同时检查 isset() 和 !empty() 函数?\n


Php 提供了一些神奇的预定义函数来处理实时应用程序中的变量。在本文中,我们将学习 isset() 和 !empty() 函数以及这两个函数的一些示例。

isset()

isset() 函数是 PHP 中的一个预定义函数,它检查变量是否在应用程序中声明并且未赋值为 NULL。此函数将结果恢复为 true 或 false。

让我们用一个例子来测试一下。

<?php
   $var1 = NULL;
   $var2 = 1;
   var_dump(isset($var1));
   var_dump(isset($var2));
?>

输出

bool(false)
bool(TRUE)

解释

在上面的示例中,$var1 定义为等于 NULL,即 $var1 = NULL,当对 $var1 执行 isset() 函数时,它将评估为 FALSE,因为 $var1 赋值为 NULL。在第二种情况下,$var2 定义为等于 1,即 $var2 = 1,当对 $var2 执行 isset() 函数时,它将评估为 TRUE,因为 $var1 不为 null。

如果提供了多个参数,则 isset() 仅在所有参数都被视为已设置时才返回 TRUE。评估从左到右进行,并在遇到未定义/未设置的变量时停止。

让我们用一个例子来测试以上内容。

<?php
   $a = "10";
   $b = "20";
   var_dump(isset($a));
   var_dump(isset($a, $b));
   var_dump(isset($c,$a, $b));
?>

输出

bool(true)
bool(true)
bool(false)

解释

这里我们声明了 $a 和 $b 变量并赋值,即 $a ="10" 和 $b = "20",但 $c 未定义。第一个表达式评估为 true,因为 $a 已定义,第二个表达式也评估为 true,因为 $a 和 $b 都已定义。下一个表达式评估为 false,因为 $c 未定义。

让我们了解一下 empty()。

empty()

empty() 函数确定给定变量是否为空或 NULL。!empty() 函数是 empty() 函数的补充。empty() 函数在很大程度上等同于 !isset() 函数,而 !empty() 函数等同于 isset() 函数。它将结果显示为 TRUE 或 FALSE。让我们用这个例子来讨论一下。

<?php
   $var1 = 0;
   var_dump(empty($var1)) ;
   var_dump(!empty($var1)) ;
?>

输出

bool(TRUE)
bool(FALSE)

解释

这里 $var1 定义为等于 0,即 $var1 =0,当我们对其执行 empty() 函数时,它将评估为 TRUE,因为 0 被视为为空。但是 !empty() 函数评估为 false,这等于 isset() 函数的结果。

检查两个函数

只要考虑功能,isset() 和 !empty() 函数就会产生相同的结果。但唯一的区别是,当变量不存在时,!empty() 函数不会生成任何警告或 E_Notice。

注意

以下值被认为为空

  • " "(空字符串)
  • 0(作为整数的 0)
  • 0.0(作为浮点数的 0)
  • "0"(作为字符串的 0)
  • NULL
  • FALSE
  • array()(空数组)


更新于: 2019-07-30

349 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告