Menu
Coddy logo textTech

Стрелочные функции

Часть раздела Логика и управление потоком путешествия по 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!
?>

Стрелочные функции идеально подходят для коротких, простых операций, где синтаксис традиционных анонимных функций кажется слишком громоздким.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Создайте стрелочную функцию, которая принимает название продукта в качестве параметра и возвращает отформатированную метку продукта. Стрелочная функция должна захватывать название категории из окружающей области видимости.

Вы получите два входных значения: название категории и название продукта. Считайте оба значения, создайте стрелочную функцию, которая захватывает категорию и форматирует метку продукта как "[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;
?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком