有人可以请问我这两个语句在PHP中的区别是什么?
if ($data['name'] != '')
{
...
}
和
if (!empty($data['name']))
{
...
}
当我用第二个语句替换第二个语句时,它修复了未定义的数组元素错误。
提前致谢。
答案 0 :(得分:1)
$data['name'] !=
被称为比较,这就是它被称为比较运算符的原因。
empty($data['name']
正在检查它是否包含数据。
答案 1 :(得分:1)
如果您尝试访问不存在的变量或数组索引 ,PHP将使用Notice
警告您这个潜在的拼写错误或不正确的逻辑。如果您不知道变量/索引是否存在并且您正在尝试精确检查,那么使用empty
来禁止该通知是合法的。
empty
与== false
相同,但在未定义变量/索引的情况下不会引发通知。另请参阅The Definitive Guide To PHP's isset And empty。
除此之外,请查看比较表,了解哪些比较会产生== false
和!= ''
之间细微差别:http://php.net/manual/en/types.comparisons.php。如果$data['name']
包含"0"
或array()
,则结果会有所不同。这些将被视为empty
(false
),但它们不等于''
。
答案 2 :(得分:0)