Menu
Coddy logo textTech

Callback-функции

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 4 из 68.

Функция обратного вызова (callback-функция) — это функция, которая передается в качестве аргумента другой функции. Вместо того чтобы вызывать функцию немедленно, вы передаете ее имя, чтобы принимающая функция могла вызвать ее позже, когда это потребуется.

Чтобы передать функцию в качестве обратного вызова (callback), вы просто используете имя функции в виде строки:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

function processUser($username, $callback) {
    // Выполняем какую-то обработку...
    $callback($username);  // Вызываем функцию обратного вызова
}

processUser("Alice", "greet");  // Выводит: Hello, Alice!
?>

В этом примере "greet" передается в качестве обратного вызова в processUser(). Функция processUser() затем вызывает этот обратный вызов, используя строку в качестве имени функции.

Обратные вызовы (коллбэки) невероятно полезны, потому что они делают ваши функции более гибкими. Одна и та же функция может выполнять различные действия в зависимости от того, какой коллбэк вы ей передаете. Эта концепция является основополагающей для многих встроенных функций PHP, таких как array_map() и array_filter(), с которыми вы познакомитесь позже в этом курсе.

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

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

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

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

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

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

challenge icon

Задание

Легко

Создайте две функции: одну с именем formatUppercase, которая принимает строку и возвращает ее в верхнем регистре, и другую с именем formatLowercase, которая принимает строку и возвращает ее в нижнем регистре.

Затем создайте функцию с именем applyFormat, которая принимает два параметра: текстовую строку и имя функции обратного вызова (callback). Эта функция должна применить callback к тексту и вернуть результат.

Вы получите два входных значения: тип операции ("upper" или "lower") и текст для форматирования. Прочитайте оба входных значения, определите, какой callback использовать в зависимости от типа операции, вызовите applyFormat с соответствующим callback и выведите отформатированный результат.

Формат входных данных: Две строки — первая строка содержит тип операции ("upper" или "lower"), вторая строка содержит текст для форматирования

Ожидаемый результат: Отформатированный текст в соответствии с типом операции

Шпаргалка

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

Чтобы передать функцию в качестве callback-функции, используйте имя функции в виде строки:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

function processUser($username, $callback) {
    // Выполнение какой-либо обработки...
    $callback($username);  // Вызов callback-функции
}

processUser("Alice", "greet");  // Выводит: Hello, Alice!
?>

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

Попробуйте сами

<?php
// Чтение входных данных
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));

// TODO: Напишите ваш код ниже
// Создайте функцию formatUppercase
// Создайте функцию formatLowercase
// Создайте функцию applyFormat
// Определите, какой callback использовать в зависимости от типа операции
// Вызовите applyFormat с соответствующим callback

// Вывод результата
echo $result;
?>
quiz iconПроверьте себя

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

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