Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
30.05.2020
Размер:
113 Кб
Скачать
☆

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

У кожної функції може бути, як ми вже говорили, список аргументів. За допомогою цих аргументів у функцію передається різна інформація (наприклад, значення числа, факторіал якого треба підрахувати). Кожен аргумент являє собою змінну або константу.

За допомогою аргументів дані у функцію можна передавати трьома різними способами.

  • передача аргументів за значенням (використовується по замовчуванню),

  • по посиланню

  • завдання значення аргументів за замовчуванням.

Розглянемо ці способи докладніше.

Коли аргумент передається у функцію за значенням, зміна значення аргументу усередині функції не впливає на його значення поза функцією. Щоб дозволити функції змінювати її аргументи, їх потрібно передавати по посиланню. Для цього у визначенні функції перед ім'ям аргументу варто написати знак амперсанд "&".

<?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. Передача аргументів по посиланню

У функції можна визначати значення аргументів, використовувані за замовчуванням. Саме значення за замовчуванням повинне бути константним вираженням, а не зміним й не представником класу або викликом іншої функції.

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

<?php

function Message($sign="Оргкомітет."){

// тут параметр sign має за замовчуванням значення "Оргкомітет"

echo "Наступні збори відбудуться завтра.<br>";

echo $sign . "<br>";

}

Message();

// викликаємо функцію без параметра. У цьому випадку підпис - це Оргкомітет

Message("З повагою, Вася.");

// У цьому випадку підпис буде "З повагою, Вася."

?>

Приклад 5.4. Значення аргументів за замовчуванням

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

Наступні збори відбудуться завтра.

Оргкомітет.

Наступні збори відбудуться завтра.

З повагою, Вася.

Якщо у функції кілька параметрів, то ті аргументи, для яких задаються значення за замовчанням, повинні бути записані після всіх інших аргументів у визначенні функції. У противному випадку з'явиться помилка, якщо ці аргументи будуть опущені при виклику функції.

Наприклад, ми хочемо внести опис статті в каталог. Користувач повинен увести такі характеристики статті, як її назва, автор і короткий опис. Якщо користувач не вводить ім'я автора статті, вважатимемо, що це Іванов Іван.

<?php

function Add_article($title, $description, $author="Іванов Іван"){

echo "Заносимо в каталог статтю: $title,";

echo "автор $author";

echo "<br>Короткий опис: ";

echo "$description <br>";

}

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

Соседние файлы в папке Маринка