Відмінності між версіями «Повернення значень функцією»
Kolbka (обговорення • внесок) |
Kolbka (обговорення • внесок) |
||
Рядок 33: | Рядок 33: | ||
Функції, не повертають значень, також називаються процедурами.<br><br> | Функції, не повертають значень, також називаються процедурами.<br><br> | ||
− | |||
− | |||
− | |||
− | |||
Рядок 46: | Рядок 42: | ||
* Вивести повідомлення з інформацією про рекомендовані роках.<br><br> | * Вивести повідомлення з інформацією про рекомендовані роках.<br><br> | ||
− | Лістинг 4.4. Повернення функцією декількох величин | + | Лістинг 4.4. Повернення функцією декількох величин<br> |
/ / Сорт вина, для якого виводяться кращі роки | / / Сорт вина, для якого виводяться кращі роки |
Версія за 10:52, 29 квітня 2010
Повернення значень з функції
По завершенні роботи функції часто буває корисно повернути деяке значення, для чого результат виклику функції зазвичай присвоюють деякої змінної. Функції можуть повертати значення будь-яких типів, у тому числі масиви та списки. Приклад наведено в лістингу 4.2, де функція calculate_cost () обчислює податок з заданої суми і повертає загальну суму разом з податком. Перш ніж переходити до розгляду лістингу, перегляньте короткий опис алгоритму на псевдокоді:
- Перед викликом функції задати значення змінних: $ price (ціна товару) і $ tax (податкова ставка).
- Оголосити функцію calculate_cost (). Коли Ви функція отримує два параметри: податкову ставку і ціну товару.
- Обчислити ціну з урахуванням податку і повернути її командою return.
- Викликати calculate_cost () і привласнити значення, повернене функцією, змінної $ total_cost.
- Вивести відповідне повідомлення.
Лістинг 4.2. Створення функції для обчислення податку
$ Price = 24.99; $ tax = .06;
function calculate_cost ($ tax, $ price) (
$ Sales_tax = $ tax;
return $ price + ($ price * $ sales_tax);
)
/ / Зверніть увагу на повернення значення функцією calculate_cost (). $ Total_cost =
calculate_cost ($ tax. $ Price);
/ / Округлити ціну до двох десяткових цифр.
$ Total_cost = round ($ total_cost. 2);
print "Total cost: $". $ total_cost;
/ / $ Total cost = 26.49
Функції, не повертають значень, також називаються процедурами.
Функція також може повертати відразу кілька значень за допомогою списку. Продовжуючи кулінарну тему, давайте напишемо функцію, яка б повертала три кращих року для зазначеного сорту вина. Функція приведена в лістингу 4.4, але спочатку прочитайте алгоритм на псевдокоді:
- Оголосити функцію best_years (), що викликається з одним параметром. Параметр $ label визначає сорт вина, для якого користувач хотів би дізнатися три рекомендованих року.
- Оголосити два масиви, $ merlot і $ zinfandel. У кожному масиві зберігається три рекомендованих року для відповідного сорту вина.
- Написати команду return, яка б використовувала особливі можливості змінних. Вираз $ $ label спочатку інтерпретує змінну $ label, а потім інтерпретує отримане значення як ім'я другій змінної. У цьому прикладі масив merlot повертається у вигляді списку, і кожен повертається рік займає свою позицію в списку, для якого викликалася функція.
- Вивести повідомлення з інформацією про рекомендовані роках.
Лістинг 4.4. Повернення функцією декількох величин
/ / Сорт вина, для якого виводяться кращі роки
$ Label = "merlot";
/ / Функція використовує масиви і "змінну у змінній"
/ / Для повернення кількох значень.
function best_years ($ label) (
$ Merlot = array ("1987", "1983", "1977");
$ Zinfandel = array ("1992", "1990", "1989");
return $ $ label;
)
/ / Функція list () використовується отримання повертаються значень.
list ($ yr_one, $ yr_two. $ yr_three) = best_years ($ label);
print "$ label had three particularly remarkable years: $ yr_one. $ yr_two, and $ yr_three.";
Програма виводить наступний результат:
merlot has three particularly remarkable years: 1987, 1983 and 1977.