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>"; }

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


 

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

79391. Объяснение агрегатных состояний вещества на основе атомно-молекулярных представлений 114.02 KB
  Ещё в четвёртом веке до н.э. было известно, что свойства вещества определяются свойствами его атомов молекул. Прошло двадцать четыре века но информация о структуре вещества полученная за это время не сказалась на основных положениях физики определяющих агрегатное состояние вещества.
79392. Модель строения жидкости. Насыщенные и ненасыщенные пары. Влажность воздуха 97.31 KB
  Основным свойством жидкости отличающим её от других агрегатных состояний является способность неограниченно менять форму под действием касательных механических напряжений даже сколь угодно малых практически сохраняя при этом объём.
79393. Поверхностное натяжение. Смачивание и несмачивание. Капиллярность 167.81 KB
  Наиболее характерным свойством жидкости отличающим ее от газа является то что на границе с газом жидкость образует свободную поверхность наличие которой приводит к возникновению явлений особого рода называемых поверхностными.
79394. Модель строения твёрдых тел. Механические свойства твёрдых тел. Упругость, пластичность, хрупкость. Диаграмма растяжения 26.38 KB
  Причиной этих свойств во многом являются силы связи между молекулами материала. Под твердостью понимают сопротивление материала которое он создает при вдавливании или царапании его поверхности другим телом. Оценка твердости материала проводится с помощью простого испытания на твердость методом царапания.
79395. Кристаллические и аморфные тела. Типы кристаллических решёток. Жидкие кристаллы 177.63 KB
  По своим физическим свойствам и молекулярной структуре твердые тела разделяются на два класса аморфные и кристаллические тела. Молекулы и атомы в изотропных твердых телах располагаются хаотично образуя лишь небольшие локальные группы содержащие несколько частиц ближний порядок.
79396. З чого складається комп’ютер 143.5 KB
  Мета уроку: Познайомити учнів з основними складовими частинами комп’ютера, їх призначенням. Скласти модель комп’ютера. Повторити техніку безпеки при роботі з комп’ютером; Виховувати дбайливе відношення до устаткування кабінету;
79397. Поняття оригамі. Відомості з історії оригамі 813.5 KB
  Мета уроку: Ознайомити із поняттям оригамі, збагатити знаннями про історію його виникнення, ознайомити із видами оригамі та способами його створення, навчити виконувати модульне оригамі. Розвивати увагу, мислення, пам’ять, уяву, точність вимірювань при виконанні модулів, фантазію та креативність.
79398. Вустами немовляти 188 KB
  В цій грі приймає участь весь клас. Вона проходить у вигляді змагань: три групи учасників по 8 чоловік – 4 гри по 2 людини. Гра перевіряє вміння учнів виконувати математичні дії, аналізувати, порівнювати, підмічати закономірності, сприяє прищеплюванню зацікавленню учнів до предмету.