Вопрос содержал подсказку о том, что нужно проверить довольно много переменных, чтобы убедиться, что они имеют значение по умолчанию, и никто не ссылался на это. Вот что я собираюсь сделать сейчас:
Вы можете сначала определить массив значений по умолчанию и удобно проходить через него. Этот пример просто проверяет глобальную переменную $ _COOKIE:
$defaults = Array(
'diamond-search_caratMin' => "0.25"
,'diamond-search_caratMax' => "2.00"
);
foreach ($defaults as $dk => $dv) {
if (!isset($_COOKIE[$dk])) {
$_COOKIE[$dk] = $dv;
}
}
Если вы планируете установить значения по умолчанию для нескольких переменных и разных типов, вы можете использовать следующий код:
$defaults = Array(
'_COOKIE' => Array(
'diamond-search_caratMin' => "0.25"
, 'diamond-search_caratMax' => "2.00"
)
, 'myOtherArray' => Array(
'value_1' => 10
, 'value_2' => 20
)
, 'myString' => 'Hello'
, 'myFloat' => 1.0
);
foreach ($defaults as $vk => $vv) {
if (is_array($vv)) {
if (!isset($$vk)) {
$$vk = Array();
}
foreach ($vv as $dk => $dv) {
if (!isset($$vk[$dk])) {
$$vk[$dk] = $dv;
}
}
} else {
if(!isset($$vk)) {
$$vk=$vv;
}
}
}
Следующим шагом будет создание массива $ defaults путем анализа некоторого ini-файла, чтобы вы могли легко централизовать свои значения по умолчанию в удобочитаемом и легко редактируемом виде. Я не собираюсь показывать это здесь, хотя я думаю, что это выходит за рамки того, о чем здесь спрашивали.
Надеюсь, кому-то это понравится ....