Введение: Актуальность PHP в 2025 году
Многие начинающие разработчики задаются вопросом: "А не умер ли PHP?" Ответ однозначный — нет. В 2025 году PHP остается одним из самых популярных языков для веб-разработки. По данным W3Techs, более 77% всех веб-сайтов используют PHP на серверной стороне. WordPress, Laravel, Symfony — все эти гиганты построены на PHP.
PHP 8.x, последняя мажорная версия, принесла значительные улучшения производительности, строгую типизацию, атрибуты и множество других современных фич. Если вы хотите создавать динамические веб-сайты, интернет-магазины или API, PHP — отличный выбор для старта. В этой статье мы разберем, с чего начать изучение PHP в 2025 году.
1. Установка и настройка окружения
Локальный сервер: XAMPP, MAMP или OpenServer
Для работы с PHP вам не нужно устанавливать его отдельно. Самый простой способ — использовать готовый пакет локального сервера. Он включает в себя PHP, веб-сервер Apache и базу данных MySQL.
- XAMPP — кроссплатформенный (Windows, Mac, Linux), самый популярный вариант.
- MAMP — отличный выбор для macOS.
- OpenServer — мощный инструмент для Windows с портативной версией.
После установки создайте папку для проекта в директории htdocs (для XAMPP) или аналогичной. Создайте файл index.php и напишите:
<?php
echo "Привет, мир PHP 2025!";
?>
Запустите браузер и перейдите по адресу http://localhost/ваша_папка/index.php. Если вы видите приветствие — всё работает!
Редактор кода: VS Code + плагины
Для комфортной работы рекомендую Visual Studio Code с плагинами:
- PHP Intelephense — автодополнение и подсветка синтаксиса.
- PHP Debug — отладка кода.
- PHP Namespace Resolver — удобная работа с неймспейсами.
2. Основы синтаксиса PHP для новичка
Переменные и типы данных
В PHP переменные начинаются со знака $. В 2025 году рекомендуется сразу использовать строгую типизацию (declare(strict_types=1)). Это поможет избежать ошибок.
<?php
declare(strict_types=1);
$name = "Анна"; // строка
$age = 25; // целое число
$price = 199.99; // число с плавающей точкой
$is_active = true; // булево значение (true/false)
echo "Пользователь: $name, возраст: $age лет";
?>
Условные операторы и циклы
Условные операторы работают стандартно:
<?php
$score = 85;
if ($score >= 90) {
echo "Отлично!";
} elseif ($score >= 75) {
echo "Хорошо";
} else {
echo "Нужно подтянуть знания";
}
?>
Цикл foreach — самый часто используемый для перебора массивов:
<?php
$fruits = ["Яблоко", "Банан", "Апельсин"];
foreach ($fruits as $fruit) {
echo "Фрукт: $fruit<br>";
}
?>
Функции и области видимости
Функции позволяют переиспользовать код. В PHP 8+ можно указывать типы аргументов и возвращаемого значения:
<?php
function calculateSum(int $a, int $b): int {
return $a + $b;
}
$result = calculateSum(10, 25);
echo "Сумма: $result"; // Выведет: Сумма: 35
?>
3. Работа с формами и базами данных
Обработка GET и POST запросов
Самый частый сценарий — получение данных из HTML-формы. Создайте файл form.php:
<!DOCTYPE html>
<html>
<body>
<form method="POST" action="handler.php">
Имя: <input type="text" name="username">
Email: <input type="email" name="email">
<input type="submit" value="Отправить">
</form>
</body>
</html>
Теперь создайте handler.php для обработки:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = htmlspecialchars($_POST["username"]);
$email = htmlspecialchars($_POST["email"]);
echo "Привет, $username! Твой email: $email";
}
?>
Функция htmlspecialchars() защищает от XSS-атак — обязательно используйте её для вывода пользовательских данных.
Подключение к MySQL (PDO)
В 2025 году стандартом является использование PDO (PHP Data Objects). Это безопасный и гибкий способ работы с базами данных.
<?php
$host = 'localhost';
$dbname = 'test';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Пример запроса (подготовленный запрос для безопасности)
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => 'test@example.com']);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($user);
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
?>
Используйте подготовленные запросы (prepared statements) — это защита от SQL-инъекций.
4. Первый проект: "Книга контактов"
Закрепим знания на практике. Создадим простое приложение для хранения контактов.
Структура проекта
- <