【问题标题】:PHP return if isset [duplicate]如果isset返回PHP [重复]
【发布时间】:2012-12-14 18:00:06
【问题描述】:

可能重复:
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', '');

或类似的东西......

【问题讨论】:

  • @SunnyRed 你刚刚做了一个,使用它。
  • :) 你觉得后面的风格有优势吗?
  • @SunnyRed 不是真的...但是对于类似(不完全相同)功能,您可以使用$my_var = $my_array['key'] || $default;

标签: php isset built-in


【解决方案1】:

考虑使用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'];

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

【讨论】:

    【解决方案2】:

    没有。在我的代码库中,我们有几个这种性质的助手。这些名字很糟糕,但由于它们经常被使用,所以简洁是必要的

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

    返回 $default

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

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

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 2017-01-23
      • 2014-11-07
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多