快速提示:如何检查变量是否在 PHP 中设置

在这个 PHP 快速提示中,我们将介绍如何检查变量是否已设置,如果已设置,它们的值是什么——这是编程中非常常见的任务。

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

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

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

<?php
    $variable = NULL;
    var_dump(isset($variable));

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

输入 empty() 和 is_null()

虽然 isset() 方法可以帮助我们确定一个变量是否已经设置了一些值,如果变量已经被设置了,它不会帮助我们 NULL. 为了处理这种情况,我们需要使用 empty() 或者 is_null() 功能。 这 empty() 函数将判断一个变量是否为空。 它会起作用(也就是说,返回 true) 为了:

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

这意味着我们可以使用 empty() 判断变量是否为空。 在这种情况下,两者 NULLfalse 被认为是空的:

<?php
    $variable = NULL;
    var_dump(empty($variable));

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

这是一个使用的例子 is_null() 确定变量是否为空:

<?php
    $variable = NULL;
    var_dump(is_null($variable));

在 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 False

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

使用 get_defined_vars() 将返回一个关联数组,其中键作为变量名,值作为变量值。 我们仍然不能使用 isset(get_defined_vars()['variable']) 在这里,因为键可能存在而值仍然为空,所以我们必须使用 array_key_exists('variable', get_defined_vars()).

例如:

<?php
    $variable = null;
    $isset = array_key_exists('variable', get_defined_vars());
    var_dump($isset); // true

    $isset = array_key_exists('otherVariable', get_defined_vars());
    var_dump($isset); // false

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

结论

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

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注