PHP:(isset($array[$key])&;$array[$key])或(@$array[$key])?

PHP:(isset($array[$key])&;$array[$key])或(@$array[$key])?,php,Php,因为我只关心$array[$key]是否有非空值,但$array[$key]不一定存在 用一种方法做这件事比用另一种方法做有什么优势或偏好吗 完整示例: if (isset($array[$key]) && $array[$key]) { // Do something } vs (@)错误控制操作员 PHP支持一个错误控制操作符:at符号(@)。什么时候 在PHP中的表达式前面添加任何可能出现的错误消息 将忽略由该表达式生成的 @-运算符仅对表达式起作用。一个简单的

因为我只关心
$array[$key]
是否有非空值,但
$array[$key]
不一定存在

用一种方法做这件事比用另一种方法做有什么优势或偏好吗

完整示例:

if (isset($array[$key]) && $array[$key]) {
    // Do something
}
vs

(@)错误控制操作员

  • PHP支持一个错误控制操作符:at符号(@)。什么时候 在PHP中的表达式前面添加任何可能出现的错误消息 将忽略由该表达式生成的
  • @-运算符仅对表达式起作用。一个简单的经验法则是: 如果你能得到某物的价值,你就可以预先设定@ 接线员来接。例如,您可以将其前置到变量, 函数,包括调用、常量等。你不能 将其前置到函数或类定义或条件 结构,例如if和foreach等
isset-确定变量是否已设置且不为空

  • 如果已使用unset()取消设置变量,则将不再设置该变量。 如果测试已设置为的变量,则isset()将返回FALSE 无效的还请注意,空字符(“\0”)与 PHP空常量
  • 如果提供了多个参数,则isset()将返回TRUE 仅当设置了所有参数时。评估从左到右 右键,并在遇到未设置变量时立即停止
检查数组键值不为空:

if(empty($fields_array[$key])) {
    //You will be here if  value does not exist or is FALSE
}
(@)错误控制操作员

  • PHP支持一个错误控制操作符:at符号(@)。什么时候 在PHP中的表达式前面添加任何可能出现的错误消息 将忽略由该表达式生成的
  • @-运算符仅对表达式起作用。一个简单的经验法则是: 如果你能得到某物的价值,你就可以预先设定@ 接线员来接。例如,您可以将其前置到变量, 函数,包括调用、常量等。你不能 将其前置到函数或类定义或条件 结构,例如if和foreach等
isset-确定变量是否已设置且不为空

  • 如果已使用unset()取消设置变量,则将不再设置该变量。 如果测试已设置为的变量,则isset()将返回FALSE 无效的还请注意,空字符(“\0”)与 PHP空常量
  • 如果提供了多个参数,则isset()将返回TRUE 仅当设置了所有参数时。评估从左到右 右键,并在遇到未设置变量时立即停止
检查数组键值不为空:

if(empty($fields_array[$key])) {
    //You will be here if  value does not exist or is FALSE
}

@数组[$key]将仅隐藏您不必使用的错误消息that@array[$key]将仅隐藏您不必使用的错误消息