Язык программирования PHP | страница 44
У нас есть функция, создающая информационное сообщение, подпись к которому меняется в зависимости от значения переданного ей параметра. Если значение параметра не задано, то используется подпись "Оргкомитет".
>
>function Message($sign="Оргкомитет."){
>// здесь параметр sign имеет по умолчанию значение "Оргкомитет"
> echo "Следующее собрание состоится завтра.
";
> echo "$sign
";
>}
>Message();
> // вызываем функцию без параметра.
> // В этом случае подпись – это Оргкомитет
>Message("С уважением, Вася");
> // В этом случае подпись
> // будет "С уважением, Вася."
>?>
Результатом работы этого скрипта будет:
>Следующее собрание состоится завтра.
>Оргкомитет.
>Следующее собрание состоится завтра.
>С уважением, Вася.
Если у функции несколько параметров, то те аргументы, для которых задаются значения по умолчанию, должны быть записаны после всех остальных аргументов в определении функции. В противном случае появится ошибка, если эти аргументы будут опущены при вызове функции.
Например, мы хотим внести описание статьи в каталог. Пользователь должен ввести такие характеристики статьи, как ее название, автор и краткое описание. Если пользователь не вводит имя автора статьи, считаем, что это Иванов Иван.
>
>function Add_article($title, $description,
> $author="Иванов Иван"){
> echo "Заносим в каталог статью: $title,";
> echo "автор $author";
> echo "
Краткое описание: ";
> echo "$description
";
>}
>Add_article("Информатика и мы",
> "Это статья про информатику ...",
> "Петров Петр");
>Add_article("Кто такие хакеры",
> "Это статья про хакеров ...");
>?>
В результате работы скрипта получим следующее
>Заносим в каталог статью: Информатика и мы,
> автор Петров Петр.
>Краткое описание:
> Это статья про информатику...
>Заносим в каталог статью: Кто такие хакеры,
> автор Иванов Иван.
>Краткое описание:
> Это статья про хакеров...
Если же мы напишем вот так:
>
>function Add_article($author="Иванов Иван",
> $title, $description){
>// ...действия как в предыдущем примере
>}
>Add_article("Кто такие хакеры",
> "Это статья про хакеров...");
>?>
То в результате получим:
>Warning: Missing argument 3 for
> add_article() in
>c:\users\nina\tasks\func\def_bad.php
> on line 2
Списки аргументов переменной длины
В PHP4 можно создавать функции с переменным числом аргументов. То есть мы создаем функцию, не зная заранее, со сколькими аргументами ее вызовут. Для написания такой функции никакого специального синтаксиса не требуется. Все делается с помощью встроенных функций func_num_args(), func_get_arg(), func_get_args().