为什么在 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()(空数组)