Параметры по умолчанию
Часто бывают такие случаи, что у некоторой разрабатываемой функции должно быть довольно много параметров, причем некоторые из них будут задаваться совершенно единообразно. Например, мы пишем функцию для сортировки массива. Тогда, кроме очевидного параметра — массива — хотелось бы также задавать и второй параметр, который бы указывал: сортировать ли в убывающем или в возрастающем порядке. При этом, скажем, мы знаем, что чаще всего придется сортировать в порядке убывания. В этом случае мы можем оформить нашу функцию так:
function MySort(&$Arr, $NeedLoOrder=1)
{ ... ñîðòèðóåì â çàâèñèìîñòè îò $NeedLoOrder...
}
Теперь, имея такую функцию, можно написать в программе:
MySort($my_array,0); // ñîðòèðóåò в ïîðÿäêå возрастания
MySort($my_array); // âòîðîé àðãóìåíò çàäàåòñÿ ïî óìîë÷àíèþ!
То есть, мы можем уже вообще опустить второй параметр у нашей функции, что будет выглядеть так, как будто мы его задали равным 1. Как видно, значение по умолчанию для какого-то аргумента указывается справа от него через знак равенства. Заметьте, что значения аргументов по умолчанию должны определяться справа налево, причем недопустимо, чтобы после любого из таких аргументов шел обычный "неумолчальный"
аргумент. Вот, например, неверное описание:
// Ошибка!
function MySort($NeedLoOrder=1, &$Arr)
{
... сортируем в зависимости от $NeedLoOrder...
}
MySort(,$my_array); // Îøèáêà!
Это вам не Бейсик!