Default Parameter Values
Часть раздела Основы путешествия по 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" вместо этого.
Вы можете комбинировать обязательные и необязательные параметры, но параметры со значениями по умолчанию должны следовать за обязательными:
<?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). Функция должна возвращать строку в следующем формате:
Order: [quantity]x [product]Если ввод количества пустой, вызовите функцию только с названием продукта (используя количество по умолчанию). В противном случае вызовите её с обоими значениями.
Выведите возвращённый результат.
Пример 1:
Если вводы Laptop и 5, вывод должен быть:
Order: 5x LaptopПример 2:
Если вводы Keyboard и пустая строка, вывод должен быть:
Order: 1x KeyboardПример 3:
Если вводы Monitor и 3, вывод должен быть:
Order: 3x MonitorШпаргалка
Значения параметров по умолчанию позволяют определить резервные значения для параметров функции, когда аргумент не предоставлен.
Чтобы задать значение по умолчанию, присвойте его в объявлении функции, используя =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice"); // Hello, Alice!
greet(); // Hello, Guest!
?>При смешивании обязательных и необязательных параметров параметры со значениями по умолчанию должны следовать после обязательных:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice"); // Alice is a member
echo createUser("Bob", "admin"); // Bob is a admin
?>Попробуйте сами
<?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;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators