Ivo*_*lka 8 php arrays error-suppression operators
从PHP数组中提取可能缺少的值时,使用@是否可以?例:
$value = @$array['possibly_missing_key'];
Run Code Online (Sandbox Code Playgroud)
预期的行为:
if (isset($array['possibly_missing_key'])) {
$value = $array['possibly_missing_key'];
} else {
$value = null;
}
Run Code Online (Sandbox Code Playgroud)
我想知道,在传播使用模式之前.
该@运营商抑制了错误信息,并利用它可能设置你的代码为最终很难追查其他错误和意外的行为.因此,它肯定是反模式.
因此,我非常喜欢第二位.它使它更清晰
为了使其更简洁,您可以使用三元条件运算符?:,如Mark Baker的答案所示.略少的代码和更多的符号,但意义是公认的.
实际上,isset变化是反模式.如果你只是isset($var)?$var:NULL打算使用意图来抑制"错误",那么你就没有使用正确的语法来抑制错误.它具有相同的结果,但可读性较差.
人们因为感知"清洁"而争论,因为使用isset是一种微观优化.避免@和使用isset作为语法盐替代只是货物崇拜编程.
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |