Интернет-Университет Информационных Технологий: бесплатное дистанционное образование компьютерным дисциплинам
  Лекции
Язык программирования PHP
1.   Введение в PHP
2.   Основы синтаксиса
3.   Управляющие конструкции
4.   Обработка запросов с помощью PHP
5.   Функции в PHP
6.   Объекты и классы в PHP
7.   Работа с массивами данных
8.   Работа со строками
9.   Работа с файловой системой
10.   Базы данных и СУБД. Введение в S...
11.   Взаимодействие PHP и MySQL
12.   Авторизация доступа с помощью се...
13.   Регулярные выражения
14.   Взаимодействие PHP и XML
15.   Использование шаблонов в PHP
    Экзамен
    Сдать экзамен экстерном
    Литература
    Предметный указатель
    Примеры

Язык программирования PHP
5. Лекция: Функции в PHP
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | вопросы | » | учебники | для печати и PDA
  Если Вы заметили ошибку - сообщите нам.  

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

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

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

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

<?php
// напишем функцию, которая бы добавляла
// к строке слово checked
function 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)

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

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

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

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

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

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

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

<?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\nina\tasks\func\def_bad.php 
    on line 2
Дальше »
  Если Вы заметили ошибку - сообщите нам.  
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | вопросы | » | учебники | для печати и PDA
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь

Телефон: (495) 253-9312, 253-9313, факс: (495) 253-9310, email: info@intuit.ru
© 2003-2006, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование