Menu
Coddy logo textTech

Функции переменных

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

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

Синтаксис прост: если у вас есть variable, содержащая имя function, вы можете вызвать эту function, добавив скобки к variable:

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

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

Это также работает с функциями, которые принимают параметры. Просто передайте аргументы внутри скобок:

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

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

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

challenge icon

Задание

Легко

Create three functions: calculateArea, которая принимает два числа (length и width) и возвращает их произведение, calculatePerimeter, которая принимает два числа и возвращает удвоенную сумму, и calculateDiagonal, которая принимает два числа и возвращает квадратный корень из суммы их квадратов.

Вы получите three inputs: имя operation ("area", "perimeter" или "diagonal"), length и width. Прочитайте все three inputs, store имя function в variable, вызовите эту function, using variable function syntax, с двумя измерениями, и выведите output.

Формат ввода: Три строки — первая строка содержит имя operation, вторая строка содержит length (число, которое может содержать десятичные знаки), третья строка содержит width (число, которое может содержать десятичные знаки)

Ожидаемый output: result вычисления

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

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

// TODO: Создайте здесь три функции (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: Вызовите соответствующую функцию, используя синтаксис переменных функций, и сохраните результат

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

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор PHP