69691

Параметри за умовчанням

Лекция

Информатика, кибернетика и программирование

Функції повинні повертати значення різних типів залежно від набору параметрів. Що ж до другої причини то в З у С можна перенавантажувати функції взагалі неможливо змінити тип значення що повертається. Параметри за умовчанням описуються так...

Украинкский

2014-10-08

61 KB

0 чел.

Тема 19: Параметри за умовчанням

При програмуванні досить часто виникала потреба створення функції із змінним числом параметрів. Тому є дві причини:

Параметрів дуже багато. При цьому немає особливого сенсу кожного разу указувати всі параметри.

Функції повинні повертати значення різних типів залежно від набору параметрів.

Що ж до другої причини, то в З (у С++ можна перенавантажувати функції) взагалі неможливо змінити тип значення, що повертається. Якщо ви оголосили тип значення, що поверталося, як int, то змінити його на double ви не зможете. Наприклад, наступне оголошення некоректне:

int   Multi();

int   Multi(int   а);

double   Multi(&avg);

У РНР функція може повертати будь-яке значення залежно від переданих нею параметрів.

Параметри за умовчанням описуються так:

имя_параметра=значение Наприклад, function  my_func   ($х   =   10   $у  =   5)

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

Приклад:

function GetMax($Arr, $i = 0) // правильне оголошення function GetMax($i « 0 $Arr ) // помилка

Наступний приклад (див. лістинг 8.3) демонструє гнучкість мови РНР. Припустимо, що нам потрібно написати функцію Multi, яка використовує глобальний масив Array. Якщо функції не передані параметри, вона повертає максимальне значення, якщо ж їй передано число, він спробує знайти в масиві такий елемент. Якщо елемент з таким значенням буде знайдений, вона поверне його номер, інакше він передасть значення —1.

Лістинг 8.3. Працюємо з функціями

$Array = array () ;

function Multi($a="-999999"){

global SArray; // передаємо у функцію глобальний масив Array() Si = 0;      -

if ($a =="-999999")

{

// немає параметрів, був переданий параметр за умовчанням a=-999999

$max = $Array[0] ; for ($i=0;$i<10;$i + + )

if ($max < $Array[$ij) $max = $Array[$i]; return $max;

}

else {

//   пошук   елементу

for($i=0;$i<10;$i++) if    ($Array[$i]   ==   $a)    return   Si; } }

for{$i=0;$i<lQ;$i++) $Array[]=$i+7; echo Multi(}."\n"; echo Multi(10)."\n";

?>

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

8.5. Змінне число параметрів у функції

Параметри за умовчанням — це, звичайно, дуже корисні функції. Але іноді ми точно не знаємо, скільки параметрів буде передано нашій функції. Спеціально для такого випадку розробники PHP передбачили можливість використання змінного числа параметрів. Напишемо функцію print_str, яка виводитиме передані нею рядки у вигляді таблиці HTML (лістинг 8.4).

Лістинг 8.4. Функція print_str

function print_str()

{

echo "<table border=l width=lQQ%>";

echo "<tr><td bgcolor=blue><font color=white>HoMep</font></td>" ;

echo "<td bgcolor=blue><font color=white>napaMeTp</font></td>" ;

for (Si=0; $i<func_num_args() ; Si + + )

{

echo "<tr><td>Si</td><td>".func_get_arg(Si)."</td></tr>"; I echo "</table>";

)

print_str("Первый","Второй","Третий", "Четвертий"); ?>

Мал. 8.2.  Створена таблиця параметрів

Основними в цій програмі є функції func_num_agrs() і func_get_arg(). Перша повертає число переданих функції аргументів, а друга — аргумент з вказаним номером.

Окрім даних двох функцій можна використовувати ще одну — func_get_args(), яка повертає список всіх аргументів. Використовувати її ще зручніше, ніж перші дві:

foreach(func_get_args()    as   $a=>$v) {

echo   "<trxtd>$a</tdxtd>$v</tdx/tr>"; }

І ще один важливий момент: звернете увагу на оголошення функції — в дужках ми нічого не пишемо, неначе ми і не збираємося передавати їй параметри.


 

А также другие работы, которые могут Вас заинтересовать

43502. ТРУДОВОЕ ПРАВО. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ 133 KB
  В ходе изучения монографических источников рекомендуется составить краткий конспект изучаемого труда зафиксировать основополагающие положения дискуссионные моменты на которые необходимо обратить особое внимание. Научные статьи по трудовому праву наиболее часто публикуются в таких журналах Государство и право РФ Хозяйство и право РФ Пленумы Верховного суда РФ Пленумы Министерства Труда РФ и в некоторых других. Понятия и принципы правовой организации оплаты труда. Норма труда.
43505. Состояние психологической готовности ребенка к школе 355.5 KB
  Развитие в школе альтернативных методик позволяет обучать детей по более интенсивной программе. Важнейшей задачей является всестороннее развитие личности ребёнка и подготовка его к школе. Готовность ребенка к обучению в школе в одинаковой мере зависит от физиологического социального и психического развития ребенка.
43506. Теория телетрафика 276.5 KB
  Как видно из расчетов, величина расчетной нагрузки возрастает с увеличением математического ожидания, но зависимость эта не линейна. С увеличением значения нагрузки, относительное отклонение расчетной нагрузки от ее математического ожидания уменьшается.
43507. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ. МЕТОДИЧЕСКИЕ УКАЗАНИЯ И ЗАДАНИЯ 66 KB
  Последовательность выполнения работы Разработку курсового задания рекомендуется проводить в следующей последовательности: математическая формулировка задачи; выбор численного метода ее решения; построение схемы алгоритма решения задачи; разработка программы; проведение испытаний отладка программы; анализ результатов счета; оформление расчетнопояснительной записки. Указания к оформлению расчетнопояснительной записки Отчет по работе оформляется в виде расчетнопояснительной записки которая должна содержать следующие черты: титульный лист;...
43509. СОЗДАНИЕ МАРКШЕЙДЕРСКОГО–ГЕОДЕЗИЧЕСКОГО ОБОСНОВАНИЯ И ПРОИЗВОДСТВА ТОПОГРАФИЧЕСКОЙ СЪЕМКИ В МАСШТАБЕ 1:2000 ГОРНОДОБЫВАЮЩЕГО ПРЕДПРИЯТИЯ 39.5 KB
  Высоты пунктов съемочного обоснования определить методом технического или спутникового нивелирования. ИСХОДНЫЕ ДАННЫЕ: Топографическая карта растр масштаба 1:100 000 с нанесенными на ней: территория горнодобывающего предприятия; пункты исходного геодезического обоснования ГГС: полигонометрия или триангуляция 4 класса точности с отметками определенными из нивелирования III класса все доступные на исходной топографической карте. Проект опорного планововысотного обоснования.
43510. Финансирование энергосберегающих проектов предприятий электроэнергетики за счёт собственных средств 313 KB
  Ухта мощностью 150 Гкал ч объект: Ухтинские тепловые сети; 2 Реконструкция теплоснабжения поселка Бельгоп г.Ухта объект: Ухтинские тепловые сети; 3 Оснащение дутьевых вентиляторов котлоагрегатов частотными приводами объект: Сосногорская ТЭЦ; 4 Внедрение системы непрерывной очистки трубокконденсаторов шарикоочистка с эластичными шариками объект: Сосногорская ТЭЦ; 5 Оснащение насосного оборудования центральных тепловых пунктов частотными приводами объект: Сосногорская ТЭЦ; 6 Подача тепла на теплофикационную установку...