检查是否设置变量 的办法,本节介绍如何检查变量是否已设置,如果已设置,它们的值是什么——这是编程中非常常见的任务。

在检查 PHP 中是否设置了变量时,我们的第一个冲动可能是使用该isset()函数。虽然这适用于大多数情况,但如果我们查看isset()函数的定义,我们会看到以下内容:

isset: 确定变量是否已声明且不是 null。

但是,在 PHP 中我们可以将变量设置为NULL

此属性将返回false– 即使我们已明确将变量设置为NULL!这是 PHP 中的一个条件,可能会产生一些混乱。在我们继续下面的过程中,我们将研究该isset()方法以及何时使用它,以及在isset不起作用时我们可以使用哪些其他方法。

检查是否设置变量 可以使用empty() 和 is_null()

虽然该isset()方法可以帮助我们确定变量是否已设置了某个值,但如果变量已设置为 ,它就无济于事了NULL。要处理这种情况,我们需要使用empty()is_null()函数。该empty()函数将确定变量是否为空。它适用于(即 return true):

  • ""(一个空字符串)
  • 0(0 为整数)
  • 0.0(0 作为浮点数)
  • "0"(0 作为字符串)
  • NULL
  • FALSE
  • array()(一个空数组)
  • $var;(声明的变量,但没有值)

这意味着我们可以使用它empty()来确定变量是否为空。在这种情况下,NULLfalse都被认为是空的:

我们也可以使用该is_null()功能。此函数将确定变量是否为空。

下面是一个is_null()用于确定变量是否为 null 的示例:

在 PHP 中处理变量时最重要的是理解 、 和 之间isset()is_null()区别empty()。这三个函数可用于确定变量的状态,但它们具有不同的行为。下表可用于突出功能之间的差异。

“” “foo” NULL FALSE 0 undefined
empty() True False True True True True
is_null() False False True False False True(error)
isset() True True False True True True

我们可以使用单一功能吗?

使用get_defined_vars()将返回一个关联数组,其中键作为变量名称,值作为变量值。我们这里还是不能用isset(get_defined_vars()['variable']),因为key可能存在,value还是null,所以我们只好用array_key_exists('variable', get_defined_vars()).

例如:

通过get_defined_vars()以这种方式使用,我们可以 100% 确定我们正在检查变量是否已设置。

结论

在这篇简短的文章中,我们讨论了如何检查一个变量是否已在 PHP 中设置。isset()我们还研究了 set、empty 和 null 之间的区别,以及使用常用函数、is_null()和时要牢记的关键注意事项empty()。因此,下次您需要检查 PHP 变量的状态时,您将拥有所需的所有信息,因此您可以选择正确的方法并消除代码中的所有歧义。

相关

2023年最佳PHP框架

Lambda函数-实例演示Python中的使用

类似文章