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

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


 

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

35467. Основные параметры микропроцессоров. Типы микропроцессоров 130.5 KB
  Дополнительные инструкции в небольших количествах вводились во многих МП 286 486 Pentium Pro и т. Но существенное изменение состава инструкций произошло в МП 386 этот состав далее принят за базовый Pentium MMX Pentium III Pentium 4. отличающиеся от базовой модели разрядностью шин тактовой частотой надежностью работы габаритами потреблением энергии амплитудой напряжения и другими параметрами; микропроцессоры Pentium Pentium II Pentium III имеют много различных модификаций некоторые из них будут названы ниже; число...
35468. Разновидности системных плат 247 KB
  Системные платы Системная или материнская motherboard MB плата это важнейшая часть компьютера содержащая основные электронные компоненты машины. С помощью материнской платы осуществляется взаимодействие между большинством устройств машины. Существует две основные разновидности конструкции системной платы СП: на плате жестко закреплены все необходимые для работы микросхемы сейчас такие платы используются лишь в простейших домашних компьютерах называемых одноплатными; непосредственно на системной плате размещается лишь...
35469. Системы телеобработки данных 51 KB
  Под техническими средствами телеобработки понимается совокупность технических средств системы обеспечивающих ввод данных в систему передачу данных по каналам связи сопряжение каналов связи с компьютером обработку данных и выдачу результатных данных абоненту. Наряду с техническими средствами для осуществления режима телеобработки у компьютера должно иметься и достаточно сложное программное обеспечение выполняющее такие функции как: обеспечение работы компьютера в различных режимах телеобработки; управление сетью телеобработки данных;...
35470. Классификация и архитектура информационно-вычислительных сетей 30 KB
  Основное назначение информационновычислительных сетей ИВС обеспечение эффективного предоставления различных информационновычислительных услуг пользователям сети путем организации удобного и надежного доступа к ресурсам распределенным в этой сети. Эффективность решения указанных задач обеспечивается: распределенными в сети аппаратными программными и информационными ресурсами; дистанционным доступом пользователя к любым видам этих ресурсов; возможным наличием централизованной базы данных наряду с распределенными базами данных; ...
35471. ПРИНЦИПЫ ПОСТРОЕНИЯ ТЕЛЕКОММУНИКАЦИОННЫХ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ (ТВС) 199.5 KB
  Абонентская система AC это совокупность ЭВМ программного обеспечения периферийного оборудования средств связи с коммуникационной подсетью вычислительной сети выполняющих прикладные процессы. Для ТВС принципиальное значение имеют следующие обстоятельства: ЭВМ находящиеся в составе разных абонентских систем одной и той же сети или различных взаимодействующих сетей связываются между собой автоматически в этом заключается основная сущность протекающих в сети процессов; каждая ЭВМ сети должна быть приспособлена как для работы в...
35472. Модель взаимодействия открытых систем 113 KB
  Указанные задачи решаются с помощью системы протоколов и стандартов регламентирующих нормализованные процедуры взаимодействия элементов сети при установлении связи и передаче данных. Протокол это набор правил и методов взаимодействия объектов вычислительной сети охватывающий основные процедуры алгоритмы и форматы взаимодействия обеспечивающие корректность согласования преобразования и передачи данных в сети. Говоря на разных языках люди могут не понимать друг друга также и сети использующие разные протоколы.
35473. Техническое обеспечение информационно-вычислительных сетей 78 KB
  Последние выполняют эффективную обработку данных и дистанционно обеспечивают пользователей сети всевозможными информационновычислительными ресурсами. Рабочая станция work station подключенный к сети компьютер через который пользователь получает доступ к ее ресурсам. Часто рабочую станцию равнокак и пользователя сети и даже прикладную задачу выполняемую в сети называют клиентом сети.
35474. Безопасность информации в сетях 79.5 KB
  К основным умышленным угрозам безопасности относятся: раскрытие конфиденциальной информации главным образом путем несанкционированного доступа к базам данных или прослушивания каналов связи; компрометация информации реализуется как правило посредством внесения несанкционированных изменений в базы данных внесения и использования компьютерных вирусов; несанкционированное использование ресурсов сети является средством раскрытия или компрометации информации но имеет и самостоятельное значение; несанкционированный обмен...
35475. Способы повышения производительности ЛВС 29.5 KB
  Интенсивность обмена данными между пользователями сети не является однородной. Часто в сети можно выделить группы пользователей информационно более интенсивно связанных друг с другом рабочие группы выполняющие решение однородных задач. В этом случае можно увеличить производительность сети разместив разные рабочие группы в отдельных сегментах сети.