Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

Аргументы функций php

Аргументы функций php

Всем привет! Сегодня мы с вами рассмотрим какие расширенные возможности предлагает нам php для работы с аргументами функции.

Допустим у нас есть следующий код:

function sum($a,$b){
    echo $a+$b;
}

sum(10,23);

Здесь у нас просто выводится сумма двух чисел 10, 23 и используется два аргумента.

Теперь попробуем вызвать функцию sum() с одним аргументом:

function sum($a,$b){
    echo $a+$b;
}

sum(10);

В результате у нас произойдет ошибка. Так как в функции указаны два обязательных аргумента, а мы при вызове передаем только один.

Мы можем просто вызвать функцию с нулевым вторым аргументом и все будет работать:

sum(10, 0);

Но есть решение и получше. Можно установить значение аргумента по умолчанию в самой функции, пример:

function sum($a,$b=0){
    echo $a+$b;
}
sum(10);

Теперь если мы вызовем функцию sum() передав ей всего один аргумент у нас в качестве значения второго аргумента по умолчанию будет 0. Это мы определили в самой функции просто написав $b=0 в качестве второго аргумента функции. Мы можем для аргумента устанавливать любое значение по умолчанию. Только важно помнить что значение по умолчанию используется в качестве значения аргумента только в том случае, когда при вызове функции этот аргумент не передается. Пример:

function sum($a,$b=0){
    echo $a+$b;
}

sum(10,20);

В результате выполнения функции мы получаем 30. Два аргумента складываются, значение по умолчанию не срабатывает так как мы передали все аргументы в функцию.

В php есть очень интересная функция func_get_args(). Она вызывается в контексте самой функции и возвращает массив аргументов которые были переданы в текущую функцию. Причем сами аргументы в функции уже можно не указывать.

Давайте немного умодифицируем нашу функцию sum():

function sum(){
    $arg = func_get_args();
    $sum = 0;
    foreach($arg as $key => $value){
        $sum += $value;
    }
    echo $sum;
}
sum(100,20,30,60);

Здесь с помощью функции func_get_args() в функцию sum() мы можем передавать сколько угодно аргументов или вообще их не передавать. И у нас на выходе функция sum() будет считать общую сумму всех передаваемых аргументов.

На этом данная статья подошла к концу.

Я желаю вам успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm