Объявления типов параметров
Часть раздела Основы путешествия по PHP на Coddy. Урок 65 из 71.
PHP — это язык с слабой типизацией, что означает, что переменные могут содержать данные любого типа. Хотя эта гибкость удобна, она может привести к неожиданным ошибкам, когда функция получает аргумент неправильного типа. Объявления типов позволяют точно указать, какие типы должны принимать ваши параметры.
Чтобы добавить объявление типа, поместите имя типа перед параметром:
<?php
function double(int $number) {
return $number * 2;
}
echo double(5);
?>Это выводит 10. int перед $number сообщает PHP, что эта функция ожидает целое число. Если кто-то передаст строку вроде "hello", PHP выдаст ошибку вместо того, чтобы молча вызывать проблемы позже.
Вы можете использовать объявления типов с несколькими параметрами:
<?php
function greetUser(string $name, int $age) {
return "$name is $age years old.";
}
echo greetUser("Alice", 25);
?>Распространённые объявления типов включают int, float, string, bool и array. Использование их делает ваш код более предсказуемым и помогает выявлять ошибки на ранних этапах, особенно по мере роста ваших программ.
Задание
ЛегкоПрочитайте три строки ввода:
- Имя человека (например,
Alice) - Фамилия человека (например,
Smith) - Год рождения (например,
1995)
Создайте функцию с именем createProfile, которая принимает три параметра с объявлениями типов:
$firstNameкакstring$lastNameкакstring$birthYearкакint
Функция должна вычислить возраст человека (предполагая, что текущий год — 2024) и вернуть строку в следующем формате:
[firstName] [lastName] is [age] years old.Вызовите функцию с значениями ввода и выведите возвращенный результат.
Пример 1:
Если ввод: Alice, Smith и 1995, вывод должен быть:
Alice Smith is 29 years old.Пример 2:
Если ввод: Bob, Johnson и 2000, вывод должен быть:
Bob Johnson is 24 years old.Пример 3:
Если ввод: Emma, Davis и 1988, вывод должен быть:
Emma Davis is 36 years old.Попробуйте сами
<?php
// Чтение ввода
$firstName = trim(fgets(STDIN));
$lastName = trim(fgets(STDIN));
$birthYear = intval(fgets(STDIN));
// TODO: Создать функцию createProfile с объявлениями типов
// Функция должна принимать $firstName (string), $lastName (string) и $birthYear (int)
// Вычислить возраст (текущий год 2024) и вернуть отформатированную строку
// Вызвать функцию и вывести результат
echo createProfile($firstName, $lastName, $birthYear);
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP