Skip to content

Чем отличается параметр функции от аргумента?

Достаточно частый вопрос, который вызывает некоторое непонимание и путаницу, особенно у новичков, при оперировании этими терминами. Так когда же уместно употреблять сочетания: параметр функции,  аргумент функции?

На самом деле ответ очень простой — при создании функции мы задаем ей параметры, которые она ожидает принимать, а уже при вызове мы уже передаем ей какие то значения, которые уже величаем — аргументы, которые соответствуют очередности параметров и которые наша функция будет обрабатывать.  Вот и все 🙂

Теперь немного теории и примеров …

Вообще функция служит для выполнение каких то повторяющихся действий. Предположим мы пишем некую программу, в которой постоянно вычисляем количество часов до конца рабочего дня. Очевидно, что здесь у нас будет первое значение — это текущая дата и время, а второе значение — вечер пятницы, предположим 18 часов вечера. Но у нас есть другой офис, а то и два, где люди работают до 19 и до 21-го часа, следовательно писать три раза с разными значениями код уже не целесообразно и следуя принципам DRY (Don’t repeat yourself, (не повторяйся) ) мы не будет использовать код три раза, а оформим его в виде функции, которая будет ожидать один параметр — это конец рабочего дня того или иного офиса. Следовательно при объявлении функции, данные которые она ожидает получить для обработки называются параметрами:

function final_day ($параметр) {
   // код, который необходимо выполнить
}

А вот когда мы будем вызывать нашу функцию, то отправка  в нее данных называется передачей аргументов

final_day (аргумент);

Вот и все.

Функция нас не ограничивает одним параметром. Мы можете присвоить ей любое количество параметров и передавать затем при вызове соответствующее число аргументов.


function имя_функции (п а р а м е т р 1 , п а р а м е т р 2 , п а р а м е т р З ) {

}
При вызове функции передаем то же количество аргументов, в том же порядке:


имя_функции(аргумент1, аргумент2, аргумент3);

Логотип компании Axoft
Логотип компании Timeweb
Логотип компании Ozon
Логотип компании Nethouse
Логотип компании CreativeMarket
Логотип хостинг-компании Pressjitsu