Задать вопрос

Вопрос по функциям php (аргументы по умолчанию)?

Случился небольшой затык с пониманием такой темы как "функции: аргументы по умолчанию".
Сначала, все понятно, есть функция: myfunc ($arg1, $arg2, $arg3 = null, $arg4 = null);
Если вызываем функцию так: myfunc(1, 2);
то вместо не указанных 3-го и 4-го параметров будут выведены null. Так же если вызвать эту функцию без 4-го аргумента, то только вместо него будет выведен null.
Мне не понятно, возможно ли каким-то образом вызвать данную функцию таким образом, чтобы не был указан 3-ий аргумент и вместо него выводилось значение по-умолчанию?
  • Вопрос задан
  • 3998 просмотров
Подписаться 7 Оценить Комментировать
Ответ пользователя Илья К ответам на вопрос (7)
seelts
@seelts
Web-, Android-, iOS-разработчик
Есть ещё вариант именованных аргументов.
В ПХП их настоящих ещё нет, но можно заменить на ассоциативный массив:

function box ($options = array('x' => 0, 'y' => 0, 'width' => 100, 'height' => 100)) {
    ...
    if (!isset($options['width'])) {
        $options['width'] = 100;
    }
    ....
}

box();
box(array('x' => 50, 'y' => 25));
box(array('x' => 50, 'y' => 25, 'height' => 414));
Ответ написан
Комментировать