Необходимо присвоить значение по умолчанию переменной, у которой еще нет значения. Часто бывает необходимо присвоить переменной жестко запрограммированное значение по умолчанию, которое может быть перезаписано значением, введенным пользователем в форме, или значением переменной окружения.
Значение по умолчанию переменной, которая, возможно, уже имеет значение, присваивается при помощи функции isset():
if (! isset($cars)) { $cars = $default_cars; }
А трехчленный оператор (a ? b : c) позволяет присвоить значение (возможно, значение по умолчанию) новой переменной:
$cars = isset($_REQUEST['cars']) ? $_REQUEST['cars'] : $default_cars;
Применение функции isset() имеет важнейшее значение в случае присваивания значений по умолчанию. Без нее значение не по умолчанию не может быть равным 0 или чему бы то ни было еще, что приравнивается к false. Рассмотрим следующее присваивание:
$cars = $_REQUEST['cars'] ? $_REQUEST['cars'] : $default_cars;
Если $REQUEST['cars'] равно 0, то $cars устанавливается в $default_cars, даже если 0 является допустимым значением для $cars. Для упрощения присваивания множества значений по умолчанию можно использовать массив таких значений. Ключи в этом массиве представляют имена переменных, а значения массива – это значения по умолчанию для каждой из переменных:
$defaults = array(' emperors ' => array(' Rudolf II ',' Caligula '),
' vegetable ' => ' celery ',
' acres ' => 15);
foreach ($defaults as $k => $v) {
if (! isset($GLOBALS[$k])) { $GLOBALS[$k] = $v; }
}
Переменные находятся в глобальном пространстве имен, поэтому предыдущий код не может применяться для установки локальных значений внутри функций. Для этого нужны переменные переменных:
foreach ($defaults as $k => $v) {
if (! isset($$k)) { $$k = $v; }
}
Документацию по функции isset() на http://www.php.net/isset;