Функции переменных
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 6 из 68.
Переменные функции предлагают еще один способ динамического вызова функций в PHP. Вместо использования call_user_func(), вы можете напрямую вызвать функцию, обращаясь к переменной, содержащей имя функции, так, как если бы она сама была функцией.
Синтаксис прост: если у вас есть переменная, содержащая имя функции, вы можете вызвать эту функцию, добавив круглые скобки к переменной:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Выводит: Hello World!
?>Это также работает с функциями, которые принимают параметры. Вы просто передаете аргументы внутри круглых скобок:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Выводит: Hello, Alice!
?>Переменные функции обеспечивают чистый и интуитивно понятный способ динамического выполнения кода. Эта возможность особенно полезна, когда вам нужно вызывать различные функции на основе условий или пользовательского ввода, что делает ваш код более гибким и адаптируемым.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоСоздайте три функции: calculateArea, которая принимает два числа (длину и ширину) и возвращает их произведение, calculatePerimeter, которая принимает два числа и возвращает их удвоенную сумму, и calculateDiagonal, которая принимает два числа и возвращает квадратный корень из суммы их квадратов.
Вы получите три входных значения: название операции ("area", "perimeter" или "diagonal"), длину и ширину. Прочитайте все три входных значения, сохраните имя функции в переменной, вызовите эту функцию, используя синтаксис переменных функций с двумя измерениями, и выведите результат.
Формат входных данных: Три строки — первая строка содержит название операции, вторая строка содержит длину (число, которое может содержать десятичные знаки), третья строка содержит ширину (число, которое может содержать десятичные знаки)
Ожидаемый результат: Результат вычисления
Шпаргалка
Переменные функции позволяют вызывать функции динамически, обращаясь к переменной, содержащей имя функции, как к самой функции.
Базовый синтаксис — добавьте круглые скобки к переменной, содержащей имя функции:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Выводит: Hello World!
?>Переменные функции также работают с параметрами:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Выводит: Hello, Alice!
?>Попробуйте сами
<?php
// Чтение входных данных
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Создайте здесь три функции (calculateArea, calculatePerimeter, calculateDiagonal)
// 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'Итоги: Сортировка таблицы лидеров