Возможный дубликат:
Какой-нибудь более сжатый способ установить значения по умолчанию?
Есть ли встроенная функция 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'];
Однако это не сработает корректно для цифровых клавиш, поэтому вы должны убедиться, что работаете с картой вместо вектора.