有什么区别!!empty($ data [' name'])和$ data [' name']!=''用PHP?

时间:2017-12-04 10:29:21

标签: php

有人可以请问我这两个语句在PHP中的区别是什么?

if ($data['name'] != '')
{
  ...
}

if (!empty($data['name']))
{
  ...
}

当我用第二个语句替换第二个语句时,它修复了未定义的数组元素错误。

提前致谢。

3 个答案:

答案 0 :(得分:1)

$data['name'] !=被称为比较,这就是它被称为比较运算符的原因。

empty($data['name']正在检查它是否包含数据。

Doc:PHP Comparison operations

答案 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(),则结果会有所不同。这些将被视为emptyfalse),但它们不等于''

答案 2 :(得分:0)

  • empty($ data ['name']检查变量是否为空。空是 解释为:“”(空字符串),0(整数),0.0(浮点)`,“0” (字符串),NULL,FALSE,array()(空数组)和“$ var;” (一个 变量声明,但在类中没有值。
  • $ data ['name']!=''仅检查相应数据是否不是 空字符串。