首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:(isset($array[$key]) && $array[$key])还是(@$array[$key])?

PHP:(isset($array[$key]) && $array[$key])还是(@$array[$key])?
EN

Stack Overflow用户
提问于 2017-11-20 05:12:16
回答 1查看 84关注 0票数 0

因为当我只对$array[$key]是否有一个非空值感兴趣时,$array[$key]并不一定存在。

与另一种方式相比,做这件事是否有优势或偏好?

完整的例子:

代码语言:javascript
复制
if (isset($array[$key]) && $array[$key]) {
    // Do something
}

vs

代码语言:javascript
复制
if (@$array[$key]) {
    // Do something
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-20 05:19:55

(@)差错控制算子

  • PHP支持一个错误控制操作符: at符号(@)。当添加到PHP中的表达式中时,该表达式可能生成的任何错误消息都将被忽略。
  • @-运算符只对表达式起作用。一个简单的经验法则是:如果你能得到某物的价值,你可以在它前面加上@运算符。例如,您可以将其添加到变量、函数和包含调用、常量等。您不能将其用于函数或类定义,或条件结构,如if和foreach,等等。

isset -确定是否设置了变量而不是NULL

  • 如果变量已经用unset()取消了设置,那么它将不再被设置。如果测试已设置为NULL的变量,isset()将返回FALSE。还请注意,空字符("\0")不等同于PHP空常量。
  • 如果提供了多个参数,那么isset()只有在设置了所有参数时才会返回TRUE。计算从左到右,并在遇到未设置变量时立即停止。

检查数组键值不是空的:

代码语言:javascript
复制
if(empty($fields_array[$key])) {
    //You will be here if  value does not exist or is FALSE
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47385417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档