是否有如下内置的php函数:
function isset_get($array, $key, $default = null) {
return isset($array[$key]) ? $array[$key] : $default;
}
我不喜欢
$my_var = isset($my_array['some Key']) ? $my_array['some Key'] : '';
并希望
$my_var = isset_get($my_array, 'some Key', '');
或类似的......
答案 0 :(得分:4)
没有。在我的代码库中,我们有几个这种性质的帮助器。这些名字非常糟糕,但由于它们经常被使用,因此需要简洁
idx($array, $key, $default)
返回$ default if!isset($ array [$ key])
adx($array, $key, $default)
像idx一样,但强制说$ array实际上是一个数组,如果没有则抛出。
edx($array, $key, $default)
返回$ default if!isset($ array [$ key])或empty($ array [$ key])
答案 1 :(得分:2)
考虑使用array_merge
。合并将覆盖每个给定数组的键,允许您使用给定值覆盖默认值数组。
$defaults = array('some Key' => 'some Default Value');
$input = array('some Key' => 'a new value');
$merged = array_merge($defaults, $input);
$value = $merged['some Key'];
然而,对于数字键,这将无法正常工作,因此您应该确保使用地图而不是矢量。