PHP:if(!empty($ arr [" key"]))VS if(@ $ arr [" key"])。有什么区别吗?

时间:2014-07-28 20:24:22

标签: php arrays

我的代码是

$arr = array(
 "key" => array(
    "id" 
  )
);

我做过速度测试 - >重复这两个语句10k次,平均时间均为0.000002。如果变量不存在,则两者都不会生成警告。

我在问,有什么不同吗?

我应该在脚本中使用哪个?

1 个答案:

答案 0 :(得分:5)

empty函数不同的是,您明​​确检查是否存在您尝试在此数组中访问的密钥,并在尝试访问不存在的数组密钥时阻止出现错误消息。

数组访问之前的@只是说隐藏了此行生成的所有错误。所以,如果有关键出现在您的数组中,您只需说“关心是否有任何错误 - 隐藏它”正确的方法是使用emptyisset函数首先检查数组键存在与否。

永远不会隐藏错误,以正确的方式阻止它们访问数组。