«Хороший сайт делается для людей, а поисковики приходят следом»

— из принципов редакции SeoLiga.ru
Главная » Статьи » Веб-программирование » PHP для начинающих: первые шаги

PHP для начинающих: первые шаги

PHP — один из самых доступных языков для веб-разработки. На нём работает огромное количество сайтов, движков и интернет-магазинов, а хостинг с его поддержкой есть буквально у каждого провайдера. Если вы вебмастер и хотите самостоятельно править шаблоны, писать небольшие скрипты или хотя бы понимать, что происходит в коде вашего сайта, PHP стоит изучить. Начать можно за один вечер, а первые полезные результаты получить в тот же день.

В этой статье пройдём путь от установки окружения до простой работы с формой и базой данных. Примеры короткие, их удобно набирать руками.

Как работает PHP

PHP — серверный язык. Это значит, что код выполняется не в браузере, а на сервере. Браузер запрашивает страницу, сервер запускает скрипт, тот формирует HTML и отдаёт его клиенту. Пользователь видит только готовую разметку, исходный код PHP ему недоступен.

Отсюда важное следствие: чтобы запустить скрипт, нужен веб-сервер с поддержкой PHP. Просто открыть файл двойным щелчком не получится, браузер покажет текст кода.

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

Для обучения проще всего поставить локальный сервер. Есть готовые сборки, которые включают веб-сервер, интерпретатор PHP и базу данных одним установщиком. Порядок действий:

  1. Установите готовую сборку локального сервера.
  2. Найдите папку, из которой сервер отдаёт файлы, обычно она называется htdocs или www.
  3. Создайте в ней папку для учебного проекта, например test.
  4. Создайте файл index.php и откройте его в браузере по адресу локального сервера.

Редактор выберите любой удобный: подойдёт и простой, и среда с подсветкой синтаксиса. Главное, чтобы файлы сохранялись в кодировке UTF-8 без лишних символов в начале, иначе русский текст превратится в кракозябры.

Первый скрипт

Код PHP помещается между специальными тегами внутри обычного HTML-файла.

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

Оператор echo выводит текст. Каждая инструкция заканчивается точкой с запятой. Это правило нужно запомнить сразу: забытая точка с запятой — самая частая ошибка новичков.

Можно смешивать PHP и HTML:

<h1>Сегодня <?php echo date("d.m.Y"); ?></h1>

Функция date возвращает текущую дату в заданном формате. Так страница получает динамические данные.

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

Имя переменной в PHP начинается со знака доллара. Тип указывать не нужно: он определяется по значению.

<?php
$name = "Анна";
$age = 28;
$price = 99.90;
$isActive = true;

echo "Меня зовут $name, мне $age лет.";
?>

Основные типы: строка, целое число, число с плавающей точкой, логическое значение, массив и null. Строки в двойных кавычках подставляют значения переменных, а в одинарных выводятся как есть. Для склейки строк используется точка:

$full = "Привет, " . $name . "!";

Условия

Ветвление работает привычным образом.

if ($age >= 18) {
    echo "Доступ разрешён";
} elseif ($age >= 14) {
    echo "Нужно согласие родителей";
} else {
    echo "Доступ закрыт";
}

Операторы сравнения: двойное равно сравнивает значения с приведением типов, а тройное — строго, с учётом типа. Старайтесь использовать строгое сравнение, чтобы избежать неожиданных результатов: например, строка «0» и число ноль при мягком сравнении считаются равными.

Массивы и циклы

Массивы бывают простыми, с числовыми индексами, и ассоциативными, где ключами служат строки.

$colors = ["красный", "зелёный", "синий"];
$user = ["name" => "Анна", "city" => "Пермь"];

foreach ($colors as $color) {
    echo $color . "<br>";
}

foreach ($user as $key => $value) {
    echo "$key: $value<br>";
}

Цикл foreach — основной способ обхода массивов. Есть также for и while для случаев, когда нужен счётчик или условие. Полезные функции для массивов: count возвращает число элементов, in_array проверяет наличие значения, array_merge объединяет массивы, sort упорядочивает.

Функции

Функции позволяют не повторять код.

function discount($price, $percent) {
    return $price - $price * $percent / 100;
}

echo discount(500, 15);

Переменные внутри функции локальны и снаружи не видны. Если нужно что-то получить из функции, возвращайте это через return. Избегайте глобальных переменных: они делают код запутанным.

Работа с формой

Самая типичная задача веб-скриптов — принять данные от пользователя. Форма отправляет их методом GET или POST, а PHP кладёт в специальные массивы.

<form method="post">
    <input type="text" name="username">
    <button type="submit">Отправить</button>
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $username = trim($_POST["username"] ?? "");
    echo "Здравствуйте, " . htmlspecialchars($username);
}
?>

Здесь есть два важных момента. Оператор ?? подставляет значение по умолчанию, если ключа нет. А функция htmlspecialchars экранирует специальные символы перед выводом. Без неё пользователь сможет внедрить в вашу страницу чужой скрипт. Правило без исключений: всё, что пришло от пользователя, считается недоверенным и перед выводом экранируется.

Подключение файлов

Чтобы не копировать шапку и подвал на каждую страницу, выносите их в отдельные файлы и подключайте.

<?php include "header.php"; ?>
<p>Содержимое страницы</p>
<?php include "footer.php"; ?>

Инструкция require ведёт себя строже: если файл не найден, выполнение останавливается. Для критически важных файлов используйте именно её.

База данных

Для хранения информации применяют базу данных. Современный и безопасный способ работы с ней — расширение PDO.

$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", "user", "pass");

$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = :id");
$stmt->execute(["id" => $_GET["id"] ?? 0]);
$article = $stmt->fetch(PDO::FETCH_ASSOC);

Обратите внимание на подготовленный запрос с параметром. Никогда не вставляйте данные пользователя прямо в текст запроса через склейку строк: это прямой путь к SQL-инъекциям, когда злоумышленник получает контроль над базой. Параметры передаются отдельно, и драйвер сам обеспечивает безопасность.

Типичные ошибки новичков

  • Забытая точка с запятой или незакрытая скобка. Читайте сообщение об ошибке: оно указывает строку.
  • Белый экран. Включите показ ошибок на учебном сервере, чтобы видеть причину.
  • Вывод данных пользователя без экранирования.
  • Склейка SQL-запросов вместо подготовленных параметров.
  • Попытка писать всё в одном огромном файле. Дробите код на функции и подключаемые части.
  • Хранение паролей открытым текстом. Используйте специальные функции хеширования паролей.

Куда двигаться дальше

Когда базовые вещи освоены, имеет смысл сделать небольшой проект: гостевую книгу, список задач, простой каталог статей. Это закрепит работу с формами и базой. Затем изучите объектно-ориентированный подход, пространства имён, менеджер зависимостей и один из популярных фреймворков. Читайте чужой код: открытые проекты — лучший учебник.

Заключение

PHP прощает многое новичкам, и это его сила и слабость одновременно. Он позволяет быстро получить результат, но не заставляет писать аккуратно. Приучайте себя с первых шагов к хорошим привычкам: строгое сравнение, экранирование вывода, подготовленные запросы, разбивка на функции. Установите локальный сервер, напишите первый скрипт и усложняйте его постепенно. Через несколько вечеров практики вы уже сможете читать код своего движка и вносить в него осмысленные правки.

Р
Редакция
Автор SeoLiga.ru. Пишет о практике: что работает на реальных проектах, а что лучше обойти стороной. Хотите предложить свою статью? Загляните в раздел «Авторам».