4

可能重复:
设置默认值的更简洁的方法?

是否有像下面这样的内置 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', '');

或类似的东西...

4

2 回答 2

4

不。在我的代码库中,我们有几个这种性质的助手。这些名称非常糟糕,但由于它们经常使用,因此简洁是必要的

idx($array, $key, $default) 如果 !isset($array[$key]) 返回 $default

adx($array, $key, $default) 像 idx,但强制 $array 实际上是一个数组,如果不是则抛出。

edx($array, $key, $default) 如果 !isset($array[$key]) 或 empty($array[$key]) 返回 $default

于 2012-12-29T23:57:58.730 回答
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'];

但是,这不适用于数字键,因此您应该确保使用的是地图而不是矢量。

于 2012-12-29T23:52:21.250 回答