// напишем функцию, которая бы добавляла
// к строке слово checked
function add_label(&$data_str){
$data_str .= 'checked';
}
$str = '<input type=radio name=article ';
// пусть имеется такая строка
echo $str .'><br>';
// выведет элемент формы –
// не отмеченную радио кнопку
add_label($str);
// вызовем функцию
echo $str .'><br>';
// это выведет уже отмеченную
// радио кнопку
?>
В функции можно определять значения аргументов, используемые по умолчанию. Само значение по умолчанию должно быть константным выражением, а не переменной и не представителем класса или вызовом другой функции.
У нас есть функция, создающая информационное сообщение, подпись к которому меняется в зависимости от значения переданного ей параметра. Если значение параметра не задано, то используется подпись 'Оргкомитет'.
<?php
function Message($sign='Оргкомитет.'){
// здесь параметр sign имеет по умолчанию значение 'Оргкомитет'
echo 'Следующее собрание состоится завтра.<br>';
echo '$sign<br>';
}
Message();
// вызываем функцию без параметра.
// В этом случае подпись – это Оргкомитет
Message('С уважением, Вася');
// В этом случае подпись
// будет 'С уважением, Вася.'
?>
Результатом работы этого скрипта будет:
Следующее собрание состоится завтра.
Оргкомитет.
Следующее собрание состоится завтра.
С уважением, Вася.
Если у функции несколько параметров, то те аргументы, для которых задаются значения по умолчанию, должны быть записаны после всех остальных аргументов в определении функции. В противном случае появится ошибка, если эти аргументы будут опущены при вызове функции.
Например, мы хотим внести описание статьи в каталог. Пользователь должен ввести такие характеристики статьи, как ее название, автор и краткое описание. Если пользователь не вводит имя автора статьи, считаем, что это Иванов Иван.
<?php
function Add_article($title, $description,
$author='Иванов Иван'){
echo 'Заносим в каталог статью: $title,';
echo 'автор $author';
echo '<br>Краткое описание: ';
echo '$description <hr>';
}
Add_article('Информатика и мы',
'Это статья про информатику ...',
'Петров Петр');
Add_article('Кто такие хакеры',
'Это статья про хакеров ...');
?>
В результате работы скрипта получим следующее
Заносим в каталог статью: Информатика и мы,
автор Петров Петр.
Краткое описание:
Это статья про информатику...
Заносим в каталог статью: Кто такие хакеры,
автор Иванов Иван.
Краткое описание:
Это статья про хакеров...
Если же мы напишем вот так:
<?php
function Add_article($author='Иванов Иван',
$title, $description){
// ...действия как в предыдущем примере
}
Add_article('Кто такие хакеры',
'Это статья про хакеров...');
?>
То в результате получим:
Warning: Missing argument 3 for
add_article() in
c:users
ina asksfuncdef_bad.php
on line 2
В PHP4 можно создавать функции с переменным числом аргументов. То есть мы создаем функцию, не