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

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


 

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

33172. Коммерческие банки, их виды. Роль коммерческих банков в рыночной экономике 57.5 KB
  Коммерческие банки их виды. Банки это огромное достижение цивилизации. Поскольку банки проводят в основном денежные операции и предметом их деятельности является денежный капитал то и содержание и масштабы последней зависят от степени развития товарноденежных отношений в стране уровня торговли темпов промышленного производства. Неэмиссионные банки подразделяются по направлению работы на коммерческие универсальные сберегательные инвестиционные ипотечные.
33173. Финансовые рынки. Финансовые институты 59 KB
  Формируется финансовый рынок. Современный финансовый рынок это сложный экономический механизм перераспределения денежных средств между странами регионами и отраслями. Свободные денежные средства сбережения всех экономических агентов поступают на финансовый рынок посредством сделок на котором происходит их инвестирование в различные финансовые активы. Финансовый рынок служит своего рода механизмом обеспечивающим перемещение потоков денежных сбережений от домашних хозяйств к предприятиям инвестирующим капиталы на свое развитие.
33174. Сущность и происхождение денег. Функции денег. Виды денег. Роль денег в современной экономике 55.5 KB
  Сущность и происхождение денег. Функции денег. Виды денег. Роль денег в современной экономике.
33175. Инфляция: ее сущность, причины и типы. Антиинфляционная политика государства 52.5 KB
  Под инфляцией в настоящее время понимают любой процесс роста цен на товары и услуги того же качества вне зависимости от вызвавшей его причины. При такой ситуации наблюдается повышенный спрос на какиелибо отдельные виды или вообще на все товары вследствие чего продавцы товаров повышают цену реализации. Факторами развития инфляции спроса являются: чрезмерная эмиссия наличных денег центральным банком без ориентации на товарную массу. Последний может допустить чрезмерную эмиссию денег в различных ситуациях: при необходимости покрыть...
33176. Сущность и необходимость кредита, его функции и законы. Ссудный процент и влияющие на него факторы 60 KB
  Еще в древности за два тысячелетия до нашей эры были известны многочисленные виды натуральных ссуд с уплатой процента в натуральной форме скотом зерном и т. В условия выдачи денежных ссуд процент соответственно уплачивается в денежной форме Уплата процента есть передача части прибыли получаемой заемщиком кредитору. Можно утверждать что ставка процента это цена кредита. Ситуация на финансовых рынках при которой объем предлагаемых заемных средств соответствует платежеспособному спросу и определяет равновесную ставку ссудного...
33177. Понятие ценной бумаги. Виды долевых ценных бумаг и их характеристика 12.79 KB
  Долевые ценные бумаги – акции представляют долю их владельцев в реальной собственности. В зависимости от характера обращения акции делятся на именные и на предъявителя. Акции на предъявителя могут свободно обращаться на рынке ценных бумаг именные акции или не подлежат обращению или их переход к другому владельцу связан с регистрацией этой сделки. Акции акционерного общества можно разделить на размещенные и объявленные.
33178. Виды долговых ценных бумаг и их характеристика 13.9 KB
  К долговым ценным бумагам относятся облигации казначейские обязательства государства депозитные сберегательные сертификаты и векселя. Облигации выступают главным инструментом мобилизации средств правительствами различными государственными органами и муниципалитетами. Облигации действуют строго определенный срок. По сроку действия обычно облигации подразделяются на краткосрочные среднесрочные и долгосрочные.
33179. Понятие эмиссионной ценной бумаги. Виды и методики расчета цены и доходности 16.54 KB
  В подавляющем большинстве случаев цена размещения существенно превышает номинальную стоимость что обусловлено ростом стоимости активов в расчете на одну акцию вследствие развития фирмы. Используется именно текущая цена а не та цена которая была заплачена за облигацию инвестором. Пусть текущая цена облигации равна 100 ставка купона 10 то тогда облигация будет иметь: Текущая доходность без учета стоимости погашения ценной бумаги в размере 10 . Купон 10 х 100 = х 100 = 10 Цена 100 Одно из основных...
33180. Финансовые отношения организаций. Особенности финансов организаций различных организационно-правовых форм и отраслей экономики 18.84 KB
  59 Финансовые отношения возникают только при наличии денежных отношений: формирование имущества предприятия получение доходов привлечение заемных источников финансирования хозяйственной деятельности распределение доходов образующихся в результате этой деятельности их использование на цели развития предприятия. Финансовые отношения возникают между: учредителями в момент создания предприятия при формировании уставного капитала; предприятиями и организациями в процессе формирования и распределения валового дохода при оплате поставок...