Php 使用@获取可能不存在的数组元素的int值会有什么陷阱?

Php 使用@获取可能不存在的数组元素的int值会有什么陷阱?,php,error-handling,Php,Error Handling,我正在尝试获取$array[$key]的整数值。 如果未设置$array[$key],则结果应为0。 我使用以下快捷方式: @(int)$array[$key] 我听说使用@不是最好的做法,所以我想知道,使用这个快捷方式可能有什么不利之处 对你来说,最大的缺点是你不清楚自己想要实现什么。如果我读过这样的代码,我不知道您想将未设置的值转换为0 如果你绝对希望在一行中有一些东西,但是保留了一些逻辑,那么三元运算符是可以的 $val = (isset($array[$key])) ? (int) $

我正在尝试获取$array[$key]的整数值。 如果未设置$array[$key],则结果应为0。 我使用以下快捷方式:

@(int)$array[$key]

我听说使用@不是最好的做法,所以我想知道,使用这个快捷方式可能有什么不利之处

对你来说,最大的缺点是你不清楚自己想要实现什么。如果我读过这样的代码,我不知道您想将未设置的值转换为0

如果你绝对希望在一行中有一些东西,但是保留了一些逻辑,那么三元运算符是可以的

$val = (isset($array[$key])) ? (int) $array[$key] : 0;
另外,
@
需要一些性能,请看一条投票率最高的评论(第三条atm):

“如果您想知道使用@operator对性能的影响是什么[…],那么第二个脚本(使用@operator)的执行时间是第一个脚本的1.75倍……几乎是第一个脚本的两倍。”


谢谢你的回复和链接。反对使用@的理由很多。我做了一个简单的测试…结果显示@真的很慢。因此,我将遵循您的建议和php手册中的一条注释:“…最好在运行代码之前测试您知道会导致错误的条件。这样,只有您知道的错误才会被抑制,而不是与该代码段相关的所有未来错误…”