Значения параметров по умолчанию
Часть раздела Основы путешествия по PHP на Coddy. Урок 64 из 71.
Иногда вы хотите, чтобы параметр функции имел резервное значение, если аргумент не передан. Значения параметров по умолчанию позволяют определить, каким должен быть параметр, если вызывающий код его не указывает.
Чтобы задать значение по умолчанию, присвойте его непосредственно в объявлении функции с помощью оператора =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>Это выведет:
Hello, Alice!
Hello, Guest!Когда вы вызываете greet("Alice"), аргумент переопределяет значение по умолчанию. Когда вы вызываете greet() без аргумента, PHP вместо этого использует "Guest".
You can mix required and optional parameters, but parameters with defaults must come after required ones:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>Это выводит:
Alice is a member
Bob is a adminПервый параметр $name является обязательным, а для $role по умолчанию используется значение "member", если он не указан. Этот шаблон делает ваши функции более гибкими, поскольку вызывающим сторонам не требуется всегда указывать каждый аргумент.
Задание
ЛегкоПрочитайте две строки ввода:
- Название продукта (например,
Laptop) - Количество (например,
5). Этот ввод может быть пустым
Создайте функцию с именем formatOrder, которая принимает два параметра: $product (обязательный) и $quantity (необязательный, значение по умолчанию — 1). Функция должна return строку в следующем формате:
Order: [quantity]x [product]Если ввод количества пуст, вызовите функцию только с названием продукта (используя количество по умолчанию). В противном случае вызовите её с обоими значениями.
Выведите возвращённый результат.
Пример 1:
Если введены Laptop и 5, результатом должно быть:
Order: 5x LaptopПример 2:
Если введены Keyboard и пустая строка, результатом должно быть:
Order: 1x KeyboardПример 3:
Если введены Monitor и 3, результатом должно быть:
Order: 3x MonitorПопробуйте сами
<?php
// Считать ввод
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO: Создать функцию formatOrder с $product (обязательный) и $quantity (необязательный, по умолчанию 1)
// Функция должна возвращать строку в формате: "Order: [quantity]x [product]"
// TODO: Вызвать функцию соответствующим образом в зависимости от того, пусто ли quantity или нет
// Если quantity пусто, вызвать только с product (использовать значение по умолчанию)
// Иначе вызвать с обоими product и quantity
// Вывести результат
echo $result;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP