Глава 2. Переменные и типы данных в PHP
Любая программа работает с данными: числами, строками, массивами, логическими значениями и объектами. В PHP переменные объявляются просто, но эта простота не отменяет необходимости понимать типы. Ошибка в типе данных часто приводит к неправильным условиям, неверным расчётам и неожиданному поведению приложения.
Числа: целые и вещественные
Целые числа используются для счётчиков, идентификаторов, количества записей и номеров страниц. Вещественные числа подходят для дробных значений, но их не стоит использовать для финансовых расчётов без дополнительной обработки округления. В современных проектах денежные суммы часто хранят в минимальных единицах: копейках, центах или других целых значениях.
$count = 10;
$price = 1299.50;
$total = $count * $price;
Строки
Строка — один из самых частых типов данных в PHP. В строках хранят имена, заголовки, адреса, сообщения и фрагменты HTML. Одинарные кавычки удобны для простого текста, двойные позволяют подставлять значения переменных. При выводе данных пользователя важно экранировать HTML, чтобы не получить XSS-уязвимость.
$name = 'Алексей';
echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
Массивы
Массив в PHP может быть списком или ассоциативной структурой. Списки удобны для наборов однотипных элементов, а ассоциативные массивы — для описания сущностей: пользователя, товара, настройки или результата запроса. Важно не превращать массивы в бесконечные неформальные структуры, которые никто не может поддерживать.
$user = [
'id' => 15,
'name' => 'admin',
'role' => 'manager',
];
Логические значения
Логический тип хранит истину или ложь. Он применяется в настройках, проверках доступа и условиях выполнения. Начинающие часто сравнивают логические значения со строками, что делает код хрупким. Лучше явно приводить и проверять значения там, где это критично.
$isAdmin = true;
if ($isAdmin) {
echo 'Доступ разрешён';
}
Константы
Константа хранит значение, которое не должно меняться во время работы скрипта. Её удобно использовать для имён режимов, технических флагов и базовых настроек. В современных приложениях часть конфигурации обычно выносится в отдельные файлы или переменные окружения.
define('APP_ENV', 'production');
const ITEMS_PER_PAGE = 20;
Преобразование типов
PHP умеет неявно преобразовывать типы, но полагаться на это опасно. Строка "10" может превратиться в число, пустая строка — в ложь, а массив — дать неожиданный результат при сравнении. В важных местах лучше использовать строгие сравнения и явное приведение типов.
$id = (int) $_GET['id'];
if ($id > 0) {
// можно загружать запись
}
Практические выводы
- Пишите код так, чтобы тип данных был понятен без догадок.
- Не смешивайте вывод HTML, расчёты и работу с внешними данными в одном блоке.
- Проверяйте входные данные до использования, особенно если они пришли из формы, URL или API.
- Используйте простые примеры для обучения, но сразу привыкайте к аккуратной структуре.