Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Аргументы функций

У каждой функции может быть, как мы уже говорили, список аргументов. С помощью этих аргументов в функцию передается различная информация (например, значение числа, факториал которого надо подсчитать). Каждый аргумент представляет собой переменную или константу.

С помощью аргументов данные в функцию можно передавать тремя различными способами. Это передача аргументов по значению (используется по умолчанию), по ссылке и задание значения аргументов по умолчанию. Рассмотрим эти способы подробнее.

Когда аргумент передается в функцию по значению, изменение значения аргумента внутри функции не влияет на его значение вне функции. Чтобы позволить функции изменять ее аргументы, их нужно передавать по ссылке. Для этого в определении функции перед именем аргумента следует написать знак амперсант «&».

<?php// напишем функцию, которая бы добавляла// к строке слово checkedfunction add_label(&$data_str){ $data_str.= "checked";}$str = "<input type=radio name=article "; // пусть имеется такая строкаecho $str."><br>"; // выведет элемент формы – // не отмеченную радио кнопкуadd_label($str); // вызовем функциюecho $str."><br>"; // это выведет уже отмеченную // радио кнопку?>

Пример 5.3. Передача аргументов по ссылке (html, txt)

В функции можно определять значения аргументов, используемые по умолчанию. Само значение по умолчанию должно быть константным выражением, а не переменной и не представителем класса или вызовом другой функции.

У нас есть функция, создающая информационное сообщение, подпись к которому меняется в зависимости от значения переданного ей параметра. Если значение параметра не задано, то используется подпись "Оргкомитет".

<?phpfunction Message($sign="Оргкомитет"){// здесь параметр sign имеет по умолчанию// значение "Оргкомитет" echo "Следующее собрание состоится завтра." echo "$sign.<br>";}Message(); // вызываем функцию без параметра. // В этом случае подпись – это ОргкомитетMessage("С уважением, Вася"); // В этом случае подпись // будет "С уважением, Вася"?>

Пример 5.4. Значения аргументов по умолчанию (html, txt)

Результатом работы этого скрипта будет:

Следующее собрание состоится завтра. Оргкомитет.Следующее собрание состоится завтра. С уважением, Вася.

Если у функции несколько параметров, то те аргументы, для которых задаются значения по умолчанию, должны быть записаны после всех остальных аргументов в определении функции. В противном случае появится ошибка, если эти аргументы будут опущены при вызове функции.

Например, мы хотим внести описание статьи в каталог. Пользователь должен ввести такие характеристики статьи, как ее название, автор и краткое описание. Если пользователь не вводит имя автора статьи, считаем, что это Иванов Иван.

<?phpfunction Add_article($title, $description, $author="Иванов Иван"){ echo "Заносим в каталог статью: $title," echo "автор $author"; echo "<br>Краткое описание: " echo "$description <hr>";}Add_article("Информатика и мы", "Это статья про информатику...", "Петров Петр");Add_article("Кто такие хакеры", "Это статья про хакеров...");?>

В результате работы скрипта получим следующее

Заносим в каталог статью: Информатика и мы, автор Петров Петр.Краткое описание: Это статья про информатику... Заносим в каталог статью: Кто такие хакеры, автор Иванов Иван.Краткое описание: Это статья про хакеров...

Если же мы напишем вот так:

<?phpfunction Add_article($author="Иванов Иван", $title, $description){//...действия как в предыдущем примере}Add_article("Кто такие хакеры", "Это статья про хакеров...");?>

То в результате получим:

Warning: Missing argument 3 for add_article() inc:\users\nina\tasks\func\def_bad.php on line 2
<== предыдущая лекция | следующая лекция ==>
Функции, определяемые пользователем | Списки аргументов переменной длины
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 468; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.