Переменные в PHP: объявление, типы, область видимости и частые ошибки
Поисковый запрос, под который подготовлена статья: переменные в PHP для начинающих. Если вы только осваиваете язык, понимание переменных поможет быстрее разобраться с формами, условиями, функциями, массивами и работой с базой данных.
Что такое переменная в PHP
Переменная в PHP — это именованное хранилище значения. В PHP имя переменной всегда начинается со знака $, после которого идёт имя: буквы, цифры и подчёркивание. Начинать имя с цифры нельзя.
<?php
$name = 'Анна';
$age = 25;
$isAdmin = false;
echo $name;
?>
PHP — язык с динамической типизацией. Это значит, что тип переменной определяется автоматически по значению. Сначала переменная может хранить строку, а потом число, хотя в реальных проектах лучше не менять смысл переменной без необходимости.
<?php
$value = '100'; // строка
$value = 100; // теперь целое число
?>
Правила именования переменных
Хорошие имена переменных делают код понятнее. Сравните:
<?php
$a = 1200;
$b = 15;
$c = $a - $b;
?>
И более читаемый вариант:
<?php
$totalPrice = 1200;
$discount = 15;
$finalPrice = $totalPrice - $discount;
?>
Рекомендации:
- используйте осмысленные имена: $userName, $orderTotal, $email;
- придерживайтесь одного стиля, чаще всего в PHP используют camelCase;
- не называйте переменные слишком общо: $data, $temp, $x, если можно точнее;
- помните, что $name и $Name — разные переменные.
Основные типы данных в PHP
Переменные в PHP могут хранить разные типы значений:
<?php
$title = 'PHP Basics'; // string, строка
$count = 10; // int, целое число
$price = 99.50; // float, число с точкой
$isPublished = true; // bool, логическое значение
$tags = ['php', 'web']; // array, массив
$user = null; // null, отсутствие значения
?>
Чтобы узнать тип переменной, используйте gettype() или var_dump():
<?php
$price = 99.50;
echo gettype($price); // double
var_dump($price); // float(99.5)
?>
var_dump() особенно полезен при отладке: он показывает и тип, и значение. Но не оставляйте такие вызовы в production-коде.
Приведение типов: когда PHP меняет значение сам
PHP часто автоматически приводит типы. Например, строка с числом может участвовать в арифметике:
<?php
$a = '10';
$b = 5;
echo $a + $b; // 15
?>
Но полагаться на магию языка опасно. Если вы ждёте число из формы, лучше явно привести значение:
<?php
$quantity = (int) $_POST['quantity'];
$price = (float) $_POST['price'];
$total = $quantity * $price;
?>
Важно: пример выше показывает именно приведение типов, но реальные данные из формы также нужно валидировать. Пользователь может отправить пустую строку, отрицательное число или вообще текст.
Проверка переменной: isset(), empty() и null
Новички часто сталкиваются с предупреждением о неопределённой переменной или индексе массива. Для проверки существования переменной используйте isset().
<?php
if (isset($userName)) {
echo 'Имя: ' . $userName;
} else {
echo 'Имя не указано';
}
?>
isset() вернёт false, если переменной нет или она равна null.
<?php
$name = null;
var_dump(isset($name)); // false
?>
empty() проверяет, является ли значение «пустым»: пустая строка, 0, '0', false, null, пустой массив.
<?php
$value = '0';
if (empty($value)) {
echo 'Пусто'; // выполнится
}
?>
Совет: используйте empty() осторожно, если значение 0 является допустимым. Например, возраст 0, количество 0 или скидка 0 могут быть нормальными значениями.
Область видимости переменных
Область видимости определяет, где переменная доступна. Переменная, созданная внутри функции, не видна снаружи. И наоборот: внешняя переменная не доступна внутри функции напрямую.
<?php
$message = 'Привет';
function showMessage() {
// echo $message; // ошибка: переменная недоступна
$localMessage = 'Здравствуйте';
echo $localMessage;
}
showMessage();
// echo $localMessage; // тоже недоступна
?>
Можно использовать ключевое слово global, но в большинстве случаев лучше передавать данные через параметры функции:
<?php
function showMessage(string $message): void {
echo $message;
}
showMessage('Привет из функции');
?>
Такой код проще тестировать, читать и поддерживать. Если вы хотите системно разобраться не только с переменными, но и с функциями, формами, MySQL и полноценной разработкой на PHP, посмотрите курс «PHP и MySQL с Нуля до Гуру 3.0» — практический путь от первых скриптов до рабочих проектов.
Константы: когда значение не должно меняться
Если значение не должно изменяться во время выполнения скрипта, используйте константу. Например, адрес сайта, лимит товаров на странице или базовую ставку налога.
<?php
define('SITE_NAME', 'Мой сайт');
const ITEMS_PER_PAGE = 20;
echo SITE_NAME;
echo ITEMS_PER_PAGE;
?>
Обычно имена констант пишут заглавными буквами. Это не обязательное правило языка, но распространённая практика.
Практический пример: расчёт суммы заказа
Соберём небольшой пример, где используются строки, числа, логическое значение, проверка переменных и итоговый расчёт.
<?php
$productName = 'Клавиатура';
$price = 2500;
$quantity = 2;
$hasDiscount = true;
$discountPercent = 10;
$total = $price * $quantity;
if ($hasDiscount) {
$discountAmount = $total * $discountPercent / 100;
$total = $total - $discountAmount;
}
echo 'Товар: ' . $productName . '<br>';
echo 'Количество: ' . $quantity . '<br>';
echo 'Итого: ' . $total . ' руб.';
?>
Здесь важно, что каждая переменная отвечает за конкретную часть логики. Такой подход проще расширять: например, добавить промокод, доставку или налог.
Частые ошибки новичков
- Забыли знак $. В PHP переменная без $ не является переменной.
- Опечатка в имени. $userName и $username — разные переменные.
- Использование переменной до объявления. Сначала задайте значение, потом используйте.
- Смешивание типов без проверки. Особенно при работе с данными из форм.
- Слишком короткие имена. Через неделю вы сами не вспомните, что означало $d или $tmp2.
Лучшие практики
- давайте переменным понятные имена;
- не храните в одной переменной данные разного смысла;
- используйте var_dump() для отладки, но удаляйте его из готового кода;
- передавайте значения в функции через параметры, а не через global;
- явно приводите типы там, где это важно для логики;
- включайте отображение ошибок на этапе разработки, чтобы быстрее находить проблемы.
Итог
Переменные в PHP — основа любого скрипта. Нужно понимать, как они объявляются, какие типы данных могут хранить, как работает область видимости и чем отличаются isset(), empty() и null. Чем аккуратнее вы работаете с переменными, тем меньше неожиданных ошибок получите в формах, расчётах, функциях и реальных проектах.
-
Создано 10.08.2026 17:00:45
-
Михаил Русаков

Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.