PHP 中的 isset 与 empty
2021-01-28 14:15
标签:声明 bool 空字符串 OLE lock 本质 浮点 lang || 需要明白的一点是一个变量存不存在(是否在栈内存中占有一席之地,你也可以占着茅坑不那啥~)与它的值是否为空(内存中的值是否为有效值)是两码事,你可以声明一个变量但不为它赋予一个有效值。 如果 $variable 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。 empty 的本质,如果你仔细留意了上方的真值表,会发现 换句话说,empty 和 以下的东西被认为是空的: 编程当中经常会写如下代码 本质等于 如果 $foo 不存在会发起警告 PHP 中的 isset 与 empty 标签:声明 bool 空字符串 OLE lock 本质 浮点 lang || 原文地址:https://www.cnblogs.com/ninkaki/p/13211131.html真值表
Variable
empty()
isset()
!empty()
isset() && !empty()
‘‘
true
true
false
false
‘ ‘
false
true
true
true
false
true
true
false
false
true
false
true
true
true
array ()
true
true
false
false
NULL
true
false
false
false
‘0‘
true
true
false
false
0
true
true
false
false
0.0
true
true
false
false
NULL
true
false
false
false
isset
empty
!empty($variable)
等价于 isset($variable) && !empty($variable)
也就是说这种情况使用 !empty($variable)
返回 true
的条件为
empty($foo) = !isset($foo) || !$foo;
!empty($foo) = isset($foo) && $foo;
!$foo
一样,区别在于当 $variable
不存在不会抛出警告信息。
一般情况下如果直接使用 (boolean) $foo
而当 $foo
不存在时,会发出变量不存在警告,所以可以使用 !empty 来判断变量是否存在以及值是否是有效值。
"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)关于 (boolean) $foo
if($foo) {
// do something
}
if( (boolean) $foo) {
// do something
}
文章标题:PHP 中的 isset 与 empty
文章链接:http://soscw.com/index.php/essay/48266.html