PHP关联数组等价于Pythondict.获取()

2024-04-25 00:50:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我离开PHP已经有几年了,最近我继承了一个PHP项目。但是,在PHP中应该相当容易的东西却让我无法理解。在Python中,我可以执行以下操作:

value = some_dict.get(unknown_key, default_value)

我的第一个想法是在PHP中做同样的事情:

^{pr2}$

但是$value变成了布尔值,因为PHP不支持值短路。我也得到了一个Notice: Undefined index: the_key,但我知道我可以通过给@加前缀来抑制它。在

我有没有办法在PHP中实现与Python的dict.get(key, default)相似的行为?我查看了PHP的array functions列表,但是没有什么特别的。在


Tags: 项目keydefaultgetindexvaluesome事情
3条回答
$value = isset($some_array[$unknown_key]) ? $some_array[$unknown_key] : $default_value;

这样就不需要取消警告

试试这个:

$value = $some_array[$unknown_key] ?: $default_value;

这相当于Python中的以下代码行:

^{pr2}$

请注意,在键存在但其值为false的边缘情况下,您将得到$default_value,这可能不是您想要的。在

我想你想要的东西大致如下:

$value = array_key_exists($unknown_key, $some_array) ? $some_array[$unknown_key] : $default_value;

这将检查键是否存在并返回值,否则将为$default_value分配默认值。在

相关问题 更多 >