快速提示:如何检查变量是否在 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()
判断变量是否为空。 在这种情况下,两者 NULL
和 false
被认为是空的:
<?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 变量的状态时,您将拥有所需的所有信息,因此您可以选择正确的方法并消除代码中的所有歧义。