Урок 12: Функции в PHP

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

Что такое функции?

Представьте, что вы каждый день готовите кофе. Вместо того чтобы повторять одни и те же действия (налить воду, добавить кофе, включить чайник), вы можете создать «функцию», например купить кофемашину. Нажали кнопку, получили результат. В программировании функции работают аналогично: это блок кода, который выполняет определенную задачу и может быть вызван многократно.

Преимущества функций:

  1. Повторное использование кода — не нужно копировать одни и те же строки.
  2. Упрощение отладки — исправляем ошибку в одном месте, а не в 100.
  3. Структурирование программы — код становится читаемым и логичным.

Создание пользовательских функций

Любую функцию в PHP можно создать с помощью ключевого слова function.

Синтаксис:

function имяФункции() {
    // Код, который выполняется при вызове функции
}

Пример: Простая функция
Создадим функцию, которая выводит приветствие:

function sayHello() {
    echo "Привет, мир! Я изучаю PHP!";
}

// Вызов функции
sayHello(); // Выведет: Привет, мир! Я изучаю PHP!

Передача параметров в функции

Функции становятся по-настоящему мощными, когда могут принимать параметры, точнее данные для обработки.

Синтаксис с параметрами:

function имяФункции($параметр1, $параметр2, ...) {
    // Используем параметры внутри функции
}

Пример: Функция с параметрами
Напишем функцию, которая приветствует пользователя по имени:

function greetUser($name) {
    echo "Привет, $name! Рады видеть тебя!";
}

greetUser("Анна"); // Привет, Анна! Рады видеть тебя!
greetUser("Иван"); // Привет, Иван! Рады видеть тебя!

Пример: Несколько параметров
Функция сложения двух чисел:

function addNumbers($a, $b) {
    $sum = $a + $b;
    echo "Сумма $a и $b равна $sum";
}

addNumbers(5, 3); // Сумма 5 и 3 равна 8

Возврат значений из функций

Часто функции не просто выводят результат, а возвращают его для дальнейшей работы. Для этого используется return.

Пример: Возврат значения
Модернизируем функцию сложения:

function addNumbers($a, $b) {
    return $a + $b;
}

$result = addNumbers(10, 20);
echo $result; // 30

Важно:

  • После выполнения return функция завершает работу.
  • Можно возвращать любые типы данных: строки, массивы, объекты.

Пример: Возврат массива
Функция, которая создает массив из четных чисел:

function createEvenArray($limit) {
    $arr = [];
    for ($i = 2; $i <= $limit; $i += 2) {
        $arr[] = $i;
    }
    return $arr;
}

$numbers = createEvenArray(10);
print_r($numbers); // [2, 4, 6, 8, 10]

Типы параметров и возвращаемых значений

В PHP 7+ можно указывать типы данных для параметров и возвращаемого значения. Это делает код предсказуемее.

Пример: Указание типов

function multiply(float $a, float $b): float {
    return $a * $b;
}

echo multiply(2.5, 4); // 10.0

Практические примеры

Давайте закрепим теорию на реальных задачах.

Задача 1: Проверка четности числа

Напишите функцию, которая принимает число и возвращает true, если оно четное, и false — если нет.

Решение:

function isEven($number) {
    return $number % 2 == 0;
}

var_dump(isEven(4)); // bool(true)
var_dump(isEven(7)); // bool(false)

Задача 2: Генератор случайного пароля

Создайте функцию, которая генерирует пароль заданной длины.

Решение:

function generatePassword($length = 8) {
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()';
    $password = '';
    for ($i = 0; $i < $length; $i++) {
        $password .= $chars[rand(0, strlen($chars) - 1)];
    }
    return $password;
}

echo generatePassword(12); // Например: pA3$kL9!qZx2

Практические задачи для самостоятельного решения

  1. Калькулятор площади прямоугольника.
    Напишите функцию calculateRectangleArea(), которая принимает ширину и высоту, возвращает площадь.
  2. Приветствие с возрастом.
    Создайте функцию greet(), которая принимает имя и возраст, и выводит: «Привет, [Имя]! Тебе [Возраст] лет.»
  3. Проверка палиндрома.
    Реализуйте функцию isPalindrome(), которая проверяет, является ли строка палиндромом (читается одинаково слева направо и справа налево).
  4. Конвертер валют.
    Напишите функцию convertCurrency(), которая конвертирует рубли в доллары по текущему курсу (курс передается как параметр).

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

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

Хотите погрузиться глубже? Полный курс по PHP для начинающих, в нем 40 уроков теории, практика и многое другое!