Параметры по умолчанию

Напомним, что аргумент может быть необязательным. У такого аргумента есть значение по умолчанию.

Например, функция getParentFor(), которую вы использовали в некоторых упражнениях, принимает имя ребёнка первым аргументом, а вторым — строку mother или father. Второй аргумент — необязательный, и если не указывать его, то автоматически по умолчанию будет использоваться mother.

Эти два вызова равнозначны:

<?php

getParentFor('Jon Snow');
getParentFor('Jon Snow', 'mother');

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

<?php

function getParentFor($child, $parent = 'mother')
{
    // какой-то код
}

Первый аргумент указан привычно — просто название переменной. Это делает аргумент обязательным.

Второй аргумент указан со значением в формате $аргумент = какое_то_значение. Точно так же, как при создании переменной. Этот фрагмент = какое_то_значение делает аргумент необязательным, и задаёт ему значение по умолчанию.

Аргументов по умолчанию может быть любое количество, но все они должны быть в конце списка аргументов. То есть такие строчки кода синтаксически некорректны:

  • function getParentFor($childName = 'Jon', $who)
  • function calculate($a, $b = 90, $c)
  • function getPrices($code = 4161, $quantity, $place)

Задание

Реализуйте функцию getCustomParentFor(), которая принимает два аргумента:

  1. Строку — имя ребёнка.
  2. Строку с указанием родителя. Этот аргумент должен по умолчанию быть 'father'.

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

Пример вызова:

<?php

getCustomParentFor('Cersei Lannister'); // Tywin Lannister

Такой вызов вернёт имя отца.

  • Используйте готовую функцию getParentFor() внутри своей функции.
  • Не нужно вызывать свою функцию getCustomParentFor(), только определить её.

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном cообществе
Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.