Короткий ответ: переменная становится параметром, когда вы объявляете ее в скобках функции. При вызове функции вы передаете значение, а внутри функции используете параметр как обычную переменную
Новичка здесь часто путают слова “параметр” и “аргумент”. В объявлении функции пишут параметры, а при вызове передают аргументы. На практике люди часто используют эти слова как синонимы, но разница помогает понимать код
Простой пример
<?php
function sayHello(string $name): string
{
return "Привет, {$name}";
}
$userName = 'Динар';
echo sayHello($userName);
В этом примере $name — параметр функции, а $userName — переменная, которую мы передали как аргумент. Внутри функции значение доступно через $name
Параметр не обязан называться так же
Снаружи переменная может называться $userName, а внутри функции — $name
<?php
function showPrice(int $amount): string
{
return "Цена: {$amount} рублей";
}
$productPrice = 1500;
echo showPrice($productPrice);
Функция получает значение, а не имя внешней переменной. Поэтому внутреннее имя параметра лучше выбирать по смыслу функции
Несколько параметров
<?php
function makeFullName(string $firstName, string $lastName): string
{
return $firstName . ' ' . $lastName;
}
echo makeFullName('Иван', 'Петров');
Порядок важен. Первое переданное значение попадет в первый параметр, второе — во второй. Если перепутать порядок, результат тоже будет перепутан
Значение по умолчанию
Параметру можно задать значение по умолчанию
<?php
function createButton(string $text, string $type = 'button'): string
{
return "<button type=\"{$type}\">{$text}</button>";
}
echo createButton('Отправить', 'submit');
echo createButton('Закрыть');
Если второй аргумент не передан, PHP использует 'button'. Это удобно для настроек, которые чаще всего одинаковые
Типы параметров
В современном PHP полезно указывать типы
<?php
function calculateTotal(int $price, int $count): int
{
return $price * $count;
}
echo calculateTotal(500, 3);
Типы помогают раньше увидеть ошибку. Если функция ожидает число, а вы передаете массив или объект, PHP сообщит о проблеме понятнее
Возврат результата
Функция не обязана сразу печатать результат. Часто лучше вернуть значение через return, а выводить его снаружи
<?php
function addVat(float $price, float $rate = 0.2): float
{
return $price + ($price * $rate);
}
$total = addVat(1000);
echo "Итого: {$total}";
Такую функцию проще тестировать и переиспользовать. Она считает, но не решает, где и как показывать результат
Передача массива параметром
Если данных много, удобно передать массив
<?php
function renderUser(array $user): string
{
return $user['name'] . ', ' . $user['email'];
}
$user = [
'name' => 'Анна',
'email' => 'anna@example.com',
];
echo renderUser($user);
Но с массивами важно проверять, что нужные ключи существуют. Иначе можно получить предупреждения
Мини-практика
Напишите функцию formatPhone, которая принимает строку с номером телефона и возвращает ее в читаемом виде. Начните с простого варианта: функция просто добавляет текст Телефон: перед номером
<?php
function formatPhone(string $phone): string
{
return "Телефон: {$phone}";
}
echo formatPhone('+7 900 000-00-00');
Затем добавьте второй параметр $prefix со значением по умолчанию
Частые ошибки
Используют переменную внутри функции, но не передают ее параметром. Внутри функции нет автоматического доступа ко всем внешним переменным
Путают порядок аргументов. Если функция принимает $price, $count, передавать нужно именно цену, затем количество
Печатают результат внутри функции там, где лучше вернуть значение. Из-за этого функцию сложнее переиспользовать
Не указывают типы. Код работает, но ошибки становятся менее очевидными
Дают параметрам слишком общие имена вроде $a и $b. Через неделю такой код трудно читать
Что почитать дальше по PHP
Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:
- Как сделать онлайн-статистику сайта на PHP
- Как сделать, чтобы PHP-сайт узнавал пользователя: cookie, session и логин
- Как скомпилировать PHP: что на самом деле нужно сделать
- Мигающий текст в PHP: как сделать правильно через CSS



