Функции — это основа многоразового кода в PHP. Вместо того чтобы писать одно и то же снова и снова, вы можете упаковать логику в специальный блок и вызывать его по имени, когда это необходимо. Это делает код чище, короче и проще в поддержке.
В этом тренажере мы пройдем путь от объявления простейшей функции до создания функций с параметрами, которые принимают данные и возвращают результат. Вы научитесь правильно строить сигнатуру функции, находить ошибки в объявлениях и понимать, как работает вызов. Эти задания помогут заложить прочный фундамент для написания эффективного PHP-кода.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Объявление и вызов простейшей функции
В коде не хватает ключевых элементов для объявления и вызова функции. Заполните пропуски, чтобы объявить функцию `sayHello` и затем вызвать её для вывода приветствия.
<?php
// Объявите функцию
input1S sayHello() {
echo "Hello, World!";
}
// Вызовите её
input2S;
?>Исправьте ошибку в объявлении
В коде есть опечатка в ключевом слове для объявления функции. Найдите строку с ошибкой и исправьте её, чтобы код стал рабочим и вывел сообщение на экран.
<?phpfuntion showMessage() { echo "Это рабочая функция!";}showMessage();Соберите рабочую программу
Строки кода перепутаны. Расставьте их в правильном порядке, чтобы сначала была объявлена функция для сложения двух чисел, а затем она была вызвана для вывода результата.
echo add(3, 4);function add($a, $b) {return $a + $b;}<?phpФункция с параметром
Дополните код, чтобы функция `greet` принимала один параметр (аргумент) и использовала его для вывода персонального приветствия. Имя переменной для параметра — на ваше усмотрение, но оно должно быть одинаковым в объявлении и в теле функции.
<?php
function greet(input1S) {
echo "Привет, " . input2S . "!";
}
greet("Иван");
?>Что вернет функция?
Проанализируйте код. Функция `calculateArea` принимает два числа, перемножает их и возвращает результат с помощью оператора `return`. Что будет выведено на экран в результате вызова `echo calculateArea(5, 10);`?
<?php
function calculateArea($width, $height) {
return $width * $height;
}
echo calculateArea(5, 10);
?>Соберите объявление функции из банка
Перетащите элементы из "банка токенов" в пропуски, чтобы составить синтаксически правильное объявление функции с именем `buildMessage` и одним параметром `$text`.
<?php
input1S input2S(input3S) {
return "Сообщение: " . $text;
}
?>Ошибка в возвращаемом значении
Функция `getSum` правильно вычисляет сумму, но при попытке вернуть результат допущена ошибка: пропущен важный символ. Исправьте строку с `return`, чтобы функция возвращала значение переменной.
<?phpfunction getSum($num1, $num2){ $result = $num1 + $num2; return result;}echo getSum(100, 55);Сборка функции и её использование
Соберите из фрагментов кода полноценную программу. Программа должна объявлять функцию `createGreeting`, которая создает строку приветствия, а затем вызывать эту функцию, сохранять результат в переменную и выводить его на экран. Один из фрагментов лишний.
return "Hello, " . $name;<?php$greeting = createGreeting("Maria");echo $greeting;function createGreeting($name) {echo "Hello, " . $name;}Что выведет код?
В этом коде объявляется функция, но она ни разу не вызывается. Внимательно посмотрите на код и предскажите, что будет выведено на экран в результате его выполнения.
<?php
function importantNotice() {
echo "This is an important notice!";
}
// Скрипт завершается здесь
?>Сопоставьте термины и части кода
Каждая функция состоит из нескольких стандартных частей. Сопоставьте названия этих частей (левая колонка) с соответствующими фрагментами кода (правая колонка).
greet("Bob");`greet``function``($name)``{ echo "Hi, " . $name; }`