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

M1K*_*K1O 2 php arrays

我的代码是

$arr = array(
 "key" => array(
    "id" 
  )
);
Run Code Online (Sandbox Code Playgroud)

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

我在问,有什么区别吗?

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

ins*_*ns0 5

不同的是,使用该empty函数显式检查您是否正在尝试访问此数组中的密钥,并在尝试访问不存在的数组密钥时阻止出现错误消息.

@数组访问之前只是说来隐藏由该行所产生的所有错误.因此,如果有关键存在于您的数组中,您只需说"如果有任何错误就会关心 - 隐藏它"正确的方法是使用emptyisset函数首先检查数组键是否存在.

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