← Назад к курсу

Основные конструкции PHP

Введение

Данное исследование предназначено для начинающих веб‑разработчиков, желающих освоить базовый синтаксис PHP, создать рабочую среду и выполнить простые проекты. В репорте рассматриваются установка окружения, базовый и современный синтаксис, работу с массивами, формами, базой данных, а также практические рекомендации по дальнейшему обучению.

Окружение и настройка

Для начала требуется установить PHP вместе с веб‑сервером. Наиболее распространённые решения:

  • XAMPP — пакет, включающий Apache, MySQL и PHP[1];
  • Встроенный сервер PHP, запускаемый через CLI: php -S localhost:8000 -t document_root[2];
  • Open Server, WampServer, Laravel Valet — альтернативные среды[3].

Современные разработчики часто используют:

  • Composer — пакетный менеджер для управления зависимостями;
  • Docker — контейнеры для воспроизводимых окружений;
  • Идеи PhpStorm, Visual Studio Code с расширениями для отладки и автодополнения.

После установки проверяется версия интерпретатора командой php -v.

Синтаксис языка

Теги и вывод

Код заключается в открывающих <?php и закрывающих ?> тегах. Для вывода используется echo или print:

<?php
echo "Привет, мир!";
?>

echo выводит строку без перевода строки, print возвращает значение и может использоваться в выражениях[2].

Переменные и типы данных

Переменные объявляются через $. PHP — динамически типизированный язык, поддерживает:

  • int — целые числа;
  • float — числа с плавающей точкой;
  • string — строки;
  • bool — логические значения;
  • array — массивы;
  • object — объекты[1].
$age = 25;               // int
$price = 19.99;          // float
$name = "Иван";          // string
$isAdmin = true;         // bool
$colors = ["red", "blue"]; // array

Операторы

  • Арифметические: + - * / % ** — сложение, вычитание, умножение, деление, остаток, возведение в степень[4].
  • Операторы присваивания: += -= *= /= %= **= — комбинируют арифметику и присваивание.
  • Сравнение: == === != !== < > <= >= — слабое и строгое сравнение[4].
  • Логические: && || ! AND OR XOR — операции «И», «ИЛИ», «НЕ», «ИЛИ (исключающее)»[4].
  • Специальные:
    • <=> — оператор “спайса” (spaceship);
    • ?? — nullptr‑coalescing.

Управляющие конструкции

  • Условные операторы:
if ($age >= 18) {
    echo "Взрослый";
} elseif ($age >= 13) {
    echo "Подросток";
} else {
    echo "Ребёнок";
}
  • Switch:
$day = date('N');
echo match ($day) {
    1 => 'Понедельник',
    2 => 'Вторник',
    3 => 'Среда',
    4 => 'Четверг',
    5 => 'Пятница',
    6 => 'Суббота',
    7 => 'Воскресенье',
};
  • Циклы:
    • for ($i = 0; $i < 10; $i++) { … }
    • while ($condition) { … }
    • foreach ($array as $value) { … }

Функции

Базовая функция:

function add($a, $b) {
    return $a + $b;
}
$result = add(3, 4); // 7

Современные возможности:

  • Анонимные функции и закрытия (closures);
  • Параметры по умолчанию и nullable;
  • Вариационарные аргументы (...$values);
  • Типизированные свойства (в PHP 8).
$numbers = [1, 2, 3];
$sum = array_sum($numbers); // 6

Работа с массивами

Создание и доступ:

$items = ["яблоко", "банан", "апельсин"];
echo $items[1]; // банан

Операции:

  • array_push($arr, $value) — добавить элемент в конец;
  • array_pop($arr) — удалить последний;
  • count($arr) — количество элементов;
  • array_merge($a, $b) — объединить массивы;
  • array_filter($arr, $callback) — фильтрация.

Современный синводаб:

$extended = [...$items, "гранат"]; // spread operator

Взаимодействие с HTML и шаблонами

Встраивание PHP в HTML:

<!DOCTYPE html>
<html>
<head><title>Привет</title></head>
<body>
<?php include 'header.php'; ?>
<?php include 'body.php'; ?>
<?php include 'footer.php'; ?>
</body>
</html>

include и require позволяют подключать файлы; require_once гарантирует однократное включение[2].

Обработка форм и безопасность

Приём данных из форм:

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $name = htmlspecialchars($_POST["name"], ENT_QUOTES, "UTF-8");
    // Пример CSRF‑токена
    // if (!hash_equals($_POST['csrf'], $_SESSION['csrf'])) { exit('Invalid CSRF'); }
    echo "Привет, $name!";
}
?>

Безопасность:

  • Защита от SQL‑инъекций — использовать подготовленные запросы (PDO::prepare);
  • Хеширование паролей — password_hash($password, PASSWORD_DEFAULT);
  • Защита от XSS — htmlspecialchars;
  • Ограничение частоты запросов (rate‑limiting).

База данных

Работа с MySQL через PDO:

$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "user", "pass", [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);

$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([1]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
  • Транзакции гарантируют целостность данных;
  • Ошибки можно отлавливать через try…catch;
  • Миграции могут управляться инструментами вроде Doctrine Migrations.

Практические проекты для новичков

Проект Краткое описание Ожидаемый результат
Калькулятор Форма с полями «a», «b» и выбором операции Вывод результата арифметической операции
Обработчик обратной связи Приём имени, e‑mail и сообщения; отправка письма через mail() Сообщение сохраняется в лог, отправка письма
Todo‑list Хранение задач в массиве, сохранение в файл tasks.json Добавление, удаление и просмотр задач
Мини‑блог Вывод постов из массива, возможность добавлять новые Страница со списком статей и формой добавления

Современные практики и инструменты

  • Объектно‑ориентированное программирование (ООП) — классы, наследование, интерфейсы;
  • Пакетный менеджер Composer — подключение библиотек (Monolog, SwiftMailer);
  • Тестирование — PHPUnit для написания unit‑тестов;
  • Производительность — OPcache, JIT‑компиляция в PHP 8.5, использование фреймворков (Laravel, Symfony).

Заключение

Освоив базовый и современный синтаксис, работы с массивами, формами, базами данных и практические проекты, разработчик получает полноценный набор инструментов для создания динамических веб‑приложений на PHP. Язык остаётся актуальным благодаря активному развитию (JIT, типизация, пространства имён), обширному сообществу и широкому спектру готовых решений. Следующим шагом после данного исследования будет углубление в выбранный фреймворк и изучение архитектурных паттернов.

Источники

  1. PHP — твой первый шаг в веб-разработку!: https://itcodik.com/article/chto-takoe-php-i-kak-ego-izuchit-prostoe-rukovodstvo-dlya-nachinayushchih
  2. Обучение PHP с нуля — CodeBasics: https://code-basics.com/ru/languages/php
  3. Введение — Manual — PHP: https://www.php.net/manual/ru/introduction.php
  4. Простой учебник — Manual — PHP: https://www.php.net/manual/ru/tutorial.php
  5. PHP уроки — обучение основ, курс PHP для начинающих c нуля: https://itproger.com/course/php-mysql