3 回答
TA贡献1816条经验 获得超4个赞
isset vs.!empty
自由贸易协定:
“ isset()检查变量的值是否包含(False,0或空字符串),但不包含NULL。如果var存在,则返回TRUE;否则返回FALSE。
另一方面,empty()函数检查变量是否具有空值,空字符串,0,NULL或False。如果var具有非空且非零值,则返回FALSE。”
TA贡献1780条经验 获得超5个赞
以最一般的方式:
isset测试变量(或数组的元素或对象的属性)是否存在(并且不为null)
empty 测试变量(...)是否包含一些非空数据。
回答问题1:
$str = '';
var_dump(isset($str));
给
boolean true
因为变量$str存在。
而问题2:
您应该使用isset来确定变量是否存在;例如,如果要获取一些数据作为数组,则可能需要检查是否在该数组中设置了键。 例如,
考虑$_GET/ $_POST。
现在,要发挥其价值,当您知道有这样一个价值时:这就是的工作empty。
TA贡献1866条经验 获得超5个赞
两种方法都不是检查有效输入的好方法。
isset() 这是不够的,因为(如前所述)它将空字符串视为有效值。
! empty() 还不够,因为它拒绝可能为有效值的“ 0”。
将isset()结合使用对空字符串的相等性检查与结合使用是您检验输入参数是否具有值而不创建假阴性的最低要求:
if( isset($_GET['gender']) and ($_GET['gender'] != '') )
{
...
}
但是,“最低限度”是我的意思。以上所有代码所做的就是确定是否有的值$_GET['gender']。它并没有确定的值是否$_GET['gender']是有效的(例如,一个)。("Male", "Female","FileNotFound")
- 3 回答
- 0 关注
- 408 浏览
添加回答
举报