КаталогBuilderPHPDocs

Глава 2. Переменные и типы данных в PHP

Любая программа работает с данными: числами, строками, массивами, логическими значениями и объектами. В PHP переменные объявляются просто, но эта простота не отменяет необходимости понимать типы. Ошибка в типе данных часто приводит к неправильным условиям, неверным расчётам и неожиданному поведению приложения.

Современное примечание. Материал обновлён для актуального подхода к PHP-разработке: примеры не привязаны к устаревшим версиям и подходят для понимания PHP 7.4+ и PHP 8.x.

Числа: целые и вещественные

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

$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.
  • Используйте простые примеры для обучения, но сразу привыкайте к аккуратной структуре.