我已经有几年没有接触PHP了,最近我继承了一个PHP项目。在PHP中应该很容易的事情却让我感到困惑。在Python中我可以这样做:
value = some_dict.get(unknown_key, default_value)
我的第一个想法是用PHP做同样的事情:
$value = $some_array[$unknown_key] || $default_value;
$value
变成了布尔值,因为PHP不支持值短路。我还收到了一个Notice: Undefined index: the_key
,但我知道我可以通过在前面加@
来抑制它。是否有一种方法可以在PHP中实现类似于Python的
dict.get(key,default)
的行为?我查看了PHP的数组函数列表,但没有任何突出的东西。
$value = $some_array[$unknown_key] ?: $default_value;
- adamrsome_dict.get(unknown_key, default_value)
也不同于some_dict.get(unknown_key) or default_value
。前者仅在字典中不存在键unknown_key
时返回default_value
,而后者将在未找到键或值为falsey时返回default_value
。 - Flimm