Menu
Coddy logo textTech

Использование 'call_user_func'

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

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

Вот базовый синтаксис:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Выводит: Hello World!
?>

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

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Выводит: 8
?>

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

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

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

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

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

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

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

challenge icon

Задание

Легко

Создайте три функции: multiply, которая принимает два числа и возвращает их произведение, subtract, которая принимает два числа и возвращает их разность, и divide, которая принимает два числа и возвращает их частное.

Вы получите три входных значения: название операции ("multiply", "subtract" или "divide") и два числа. Прочитайте все три входных значения, используйте call_user_func() для выполнения соответствующей функции с двумя числами и выведите результат.

Формат входных данных: Три строки — первая строка содержит название операции, вторая строка содержит первое число, третья строка содержит второе число

Ожидаемый результат: Результат операции

Шпаргалка

Функция call_user_func() позволяет динамически вызывать функции, используя строковую переменную, содержащую имя функции:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Выводит: Hello World!
?>

Вы можете передавать аргументы в функцию, указывая их в качестве дополнительных параметров:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Выводит: 8
?>

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

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

// TODO: Создайте здесь три функции (multiply, subtract, divide)

// TODO: Используйте call_user_func() для выполнения соответствующей функции

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

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

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