Возвращение PHP, если isset

Возможный дубликат:
Какой-нибудь более сжатый способ установить значения по умолчанию?

Есть ли встроенная функция 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', ''); 

или что-то подобное …

Нет. В моей кодовой базе у нас есть несколько помощников такого рода. Имена довольно ужасны, но поскольку они часто используются, необходима сводка

idx($array, $key, $default) возвращает значение $ default if! isset ($ array [$ key])

adx($array, $key, $default) как idx, но обеспечивает, чтобы массив $ array был массивом и выбрасывал, если нет.

edx($array, $key, $default) возвращает значение $ default if! isset ($ array [$ key]) или пустое ($ array [$ key])

Рассмотрим использование 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']; 

Однако это не сработает корректно для цифровых клавиш, поэтому вы должны убедиться, что работаете с картой вместо вектора.