Как декларировать функцию в PHP: function, параметры и return

Короткий ответ: функцию в PHP объявляют через ключевое слово function, имя функции, круглые скобки с параметрами и тело в фигурных скобках. Если функция должна вернуть результат, используйте return

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

Минимальная функция

<?php

function sayHello(): void
{
    echo 'Привет';
}

sayHello();

sayHello() объявлена один раз, а вызвать ее можно много раз

Функция с параметром

<?php

function greet(string $name): string
{
    return 'Привет, ' . $name;
}

echo greet('Динар');

Параметр $name передается внутрь функции. return возвращает готовую строку туда, где функция была вызвана

Функция с несколькими параметрами

<?php

function calculateTotal(int $price, int $quantity): int
{
    return $price * $quantity;
}

echo calculateTotal(500, 3);

Результат

1500

Такую функцию проще проверять и переиспользовать, чем каждый раз писать расчет руками

Значение по умолчанию

<?php

function formatPrice(int $price, string $currency = 'руб.'): string
{
    return $price . ' ' . $currency;
}

echo formatPrice(1200);
echo formatPrice(20, '$');

Если второй аргумент не передан, PHP использует руб.

Тип возвращаемого значения

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

<?php

function cleanName(string $name): string
{
    return trim($name);
}

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

Практический пример для формы

<?php

function cleanInput(string $value): string
{
    return trim($value);
}

function isValidEmail(string $email): bool
{
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}

$email = cleanInput($_POST['email'] ?? '');

if (!isValidEmail($email)) {
    echo 'Email указан неверно';
    exit;
}

echo 'Email можно использовать';

Здесь две маленькие функции делают код понятнее: одна очищает строку, другая проверяет email

Где объявлять функции

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

<?php

require __DIR__ . '/helpers.php';

echo formatPrice(1500);

Так код не превращается в один огромный файл

Мини-практика

Напишите функцию makePreview(string $text, int $limit): string, которая обрезает текст до заданной длины и добавляет многоточие, если строка была длиннее лимита. Для русского текста используйте mb_substr() и mb_strlen()

Частые ошибки

Путают объявление и вызов function greet() {} объявляет функцию, greet() вызывает ее

Забывают return Если функция должна вернуть результат, одного echo внутри недостаточно

Делают функцию слишком большой Хорошая учебная функция обычно делает одну понятную вещь

Используют переменные снаружи без передачи параметров Лучше передавать данные в функцию явно через аргументы

Что почитать дальше по PHP

Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x