Стрелочные функции
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 3 из 68.
Стрелочные функции, представленные в PHP 7.4, предоставляют более лаконичный способ написания простых анонимных функций. Они используют ключевое слово fn вместо полного синтаксиса function, что делает ваш код короче и чище.
Вот как создается стрелочная функция:
<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice"); // Выводит: Hello, Alice!
?>Обратите внимание на ключевые различия: стрелочные функции используют fn вместо function, имеют стрелку =>, указывающую на выражение, и им не нужны фигурные скобки или оператор return для простых выражений.
Самым большим преимуществом стрелочных функций является то, что они автоматически захватывают переменные из родительской области видимости — ключевое слово use не требуется:
<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Вывод: Welcome, Bob!
?>Стрелочные функции идеально подходят для коротких, простых операций, где синтаксис традиционных анонимных функций кажется слишком громоздким.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоСоздайте стрелочную функцию, которая принимает название продукта в качестве параметра и возвращает отформатированную метку продукта. Стрелочная функция должна захватывать название категории из окружающей области видимости.
Вы получите два входных значения: название категории и название продукта. Считайте оба значения, создайте стрелочную функцию, которая захватывает категорию и форматирует метку продукта как "[Category] Product", вызовите стрелочную функцию с названием продукта и выведите результат.
Формат входных данных: Две строки — первая строка содержит название категории, вторая строка содержит название продукта
Ожидаемый вывод: Отформатированная метка продукта в формате "[Category] Product"
Шпаргалка
Стрелочные функции используют ключевое слово fn и предоставляют краткий синтаксис для простых анонимных функций:
$greeting = fn($name) => "Hello, " . $name . "!";Ключевые особенности:
- Используйте
fnвместоfunction - Стрелка
=>указывает на выражение - Фигурные скобки или оператор
returnне требуются для простых выражений - Автоматически захватывают переменные из родительской области видимости без ключевого слова
use
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Выводит: Welcome, Bob!Попробуйте сами
<?php
// Чтение входных данных
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));
// TODO: Напишите свой код ниже
// Создайте стрелочную функцию, которая захватывает категорию и форматирует метку продукта
// Вызовите стрелочную функцию и выведите результат
echo $result;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров