PHP 中的 'isset()' 和 '!empty()' 有什么区别?

问题描述 投票:0回答:8

我不明白

isset()
!empty()
之间的区别。

因为如果设置了一个变量,那不就等于不为空了吗?

php isset
8个回答
83
投票

ISSET 检查变量以查看它是否已设置。换句话说,它检查变量是否为除 NULL 之外的任何值或未分配值。如果变量存在并且具有 NULL 以外的值,则

ISSET
返回
TRUE
。这意味着分配了“”、0、“0”或 FALSE 的变量已设置,因此
TRUE
表示
ISSET

EMPTY 检查变量是否为空。空被解释为:“”(空字符串)、0(整数)、0.0(浮点)`、“0”(字符串)、NULL、FALSE、array()(空数组)和“$var;” (声明了一个变量,但在类中没有值。


32
投票

来源:http://php.net/manual/en/types.comparisons.php此页面显示了

empty()
is_null()
isset()
的比较。


5
投票

类型比较表给出了有关这些运算符的所有问题的答案

http://php.net/manual/en/types.comparisons.php


5
投票

还有一点。

empty()
检查变量是否也存在。 IE。如果我们对未声明的变量执行
empty()
,我们不会收到错误,
empty()
返回“true”。因此,如果接下来我们需要检查变量是否为空,我们可以避免
isset()

所以

isset($var) && !empty($var)

将等于

!empty($var)

0
投票

isset
— 确定变量是否已设置且不为 NULL。

!empty
— 确定变量是否不为空。


0
投票

如果变量尚未设置或变量为 null,则 Isset 返回 false;如果变量已设置且不为 null,则返回 true。

如果变量已设置且不为空,

!empty 返回 true。空字符串、空数组、“0”、0 和 false 定义为空。


0
投票

当已经存在一个正在检查 true 或 false 的条件时,请使用 !empty。

isset 更基本。空包含更多检查,因此需要小心使用。


0
投票

Isset() 函数

Isset函数用于检查变量是否定义且值不为null

!(空)函数

!(empty) 函数用于检查变量是否未定义或包含 0,0.0,'' ,array(),false,null 等值。

© www.soinside.com 2019 - 2024. All rights reserved.