如果是isset,则返回PHP

时间:2012-12-29 23:46:36

标签: php isset built-in

  

可能重复:
  Any more concise way to set default values?

是否有如下内置的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', '');

或类似的......

2 个答案:

答案 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'];

然而,对于数字键,这将无法正常工作,因此您应该确保使用地图而不是矢量。