Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. III. Нейрогуморальная регуляция функций.
  2. IV. Аргументы
  3. IV. Аргументы
  4. IV. Аргументы
  5. Аналитическая форма представления булевых функций
  6. Аргументы
  7. Аргументы в пользу чистого рынка.
  8. Аргументы к личности
  9. Аргументы к человеку

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

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

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

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

Пример. Передача аргументов по ссылке

Примечание.

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

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

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

Пример. Значения аргументов по умолчанию

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

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

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

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

<?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("Кто такие хакеры", "Это статья про хакеров...");?>

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




Дата добавления: 2015-01-05; просмотров: 36 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав