【发布时间】:2011-05-25 09:36:41
【问题描述】:
从 PHP 数组中提取可能缺失的值时可以使用 @ 吗?示例:
$value = @$array['possibly_missing_key'];
预期行为:
if (isset($array['possibly_missing_key'])) {
$value = $array['possibly_missing_key'];
} else {
$value = null;
}
我想知道,在传播使用模式之前。
【问题讨论】:
-
我是唯一一个使用array_key_exists 而不是 isset 的人吗?
-
(旁注)
isset未检测到可能丢失的密钥。为此使用array_key_exists。试试$arr = array('notMissing' => NULL);和isset -
@AlexV @Gordon:我认为这并不重要,因为默认值无论如何都是 NULL :P
-
@AlexV - 可能是微优化,我知道,但我发现 isset() 比 array_key_exists() 快...可能是因为它是一种语言构造而不是函数(所有相关函数调用开销)
-
我和@AlexV 一起讨论这个问题。缺少的键和值为
NULL的现有键之间存在语义差异
标签: php arrays operators error-suppression