Урок 01

Введение в PHP

Что такое PHP

PHP (PHP: Hypertext Preprocessor) — скриптовый язык общего назначения, созданный для веб-разработки. Работает на сервере, генерирует HTML, который отдаётся браузеру.

Расшифровка аббревиатуры — рекурсивная: PHP: Hypertext Preprocessor.

История

  • 1994 — Расмус Лердорф создал PHP/FI для отслеживания посетителей своего сайта.
  • 1997 — PHP 3, массовое распространение.
  • 2000 — PHP 4, поддержка ООП.
  • 2004 — PHP 5, полноценное ООП.
  • 2015 — PHP 7, значительное ускорение.
  • 2020 — PHP 8, JIT-компиляция, современный синтаксис.
  • 2024 — PHP 8.3/8.4, продолжение развития.

Более 75% сайтов в мире работают на PHP — включая WordPress, Wikipedia, Facebook (исторически).

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

Схема запроса:

  1. Браузер отправляет HTTP-запрос на сервер.
  2. Веб-сервер (Nginx/Apache) передаёт запрос PHP-FPM.
  3. PHP выполняет скрипт.
  4. Результат (обычно HTML) возвращается браузеру.

Ключевое: PHP-код не виден в браузере. Пользователь получает только результат.

Что умеет PHP

  • Генерация HTML — вставка кода в разметку.
  • Работа с формами — приём и обработка данных.
  • Базы данных — MySQL, PostgreSQL, SQLite.
  • Файлы — чтение, запись, загрузка.
  • Сессии и cookie — аутентификация.
  • API — REST, JSON, GraphQL.
  • CLI-скрипты — задачи вне веба.
  • Очереди — фоновая обработка.

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

Файл hello.php:

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

Что здесь:

  • <?php — открывающий тег, начало PHP-кода.
  • echo — вывод текста.
  • ; — конец инструкции.

Запуск через CLI:

php hello.php
# Привет, мир!

В браузере — файл должен лежать в корне веб-сервера, открывается по http://localhost/hello.php.

PHP в HTML

Вставка PHP в разметку:

<!DOCTYPE html>
<html>
<head>
    <title>Моя страница</title>
</head>
<body>
    <h1><?php echo 'Привет!'; ?></h1>
    <p>Сегодня: <?= date('d.m.Y') ?></p>
</body>
</html>

Короткий тег <?= — эквивалент <?php echo.

Примечание: смешивать логику и разметку — плохо. В реальных проектах используют шаблонизаторы (Blade, Twig) или MVC-фреймворки (Laravel, Symfony).

Тег <?php

Правила:

  • Файл с чистым PHP — <?php без закрывающего ?>.
  • Закрывающий ?> не обязателен и даже вреден — после него может попасть пробел или перевод строки, что сломает заголовки (headers already sent).

Правильно:

<?php

namespace App;

class Foo
{
    // ...
}

Не делай так:

<?php
// ...
?>

Комментарии

Однострочные:

// Это комментарий
# Это тоже комментарий (устаревший стиль)

Многострочные:

/*
 * Большой комментарий
 * на несколько строк
 */

PHPDoc — для документации:

/**
 * Складывает два числа
 *
 * @param int $a Первое число
 * @param int $b Второе число
 * @return int Сумма
 */
function sum(int $a, int $b): int
{
    return $a + b;
}

PHPDoc используется IDE (PhpStorm, VS Code) для автодополнения и типизации.

Эхо и вывод

Основные способы вывести данные:

// echo — принимает несколько аргументов
echo 'Привет', ' ', 'мир';

// print — возвращает 1, работает как выражение
print 'Привет';

// printf — форматирование
printf('Привет, %s!', 'Иван');

// var_dump — отладочный вывод
var_dump([1, 2, 3]);

// print_r — читаемый вывод массива
print_r(['a' => 1, 'b' => 2]);

echo — самый быстрый и распространённый.

Первая программа

index.php:

<?php

declare(strict_types=1);

$name = 'Иван';
$year = 2026;

$greeting = sprintf('Привет, %s! Сейчас %d год.', $name, $year);

echo $greeting;

Вывод:

Привет, Иван! Сейчас 2026 год.

declare(strict_types=1) — включает строгую типизацию. Про неё поговорим в следующих уроках.

Структура типичного проекта

Простой сайт:

my-site/
├── index.php           # точка входа
├── about.php
├── contact.php
├── includes/
│   ├── header.php
│   └── footer.php
├── assets/
│   ├── css/
│   └── js/
└── uploads/

Современный проект (Laravel):

my-app/
├── app/
├── config/
├── database/
├── public/             # точка входа
├── resources/
├── routes/
├── storage/
├── tests/
└── vendor/

Всегда используй фреймворк для серьёзных проектов. Чистый PHP — только для изучения и скриптов.

Что дальше

  1. Установка PHP и настройка окружения
  2. Переменные и типы
  3. Операторы
  4. Условия и циклы
  5. Массивы
  6. Функции
  7. Строки
  8. Подключение файлов

Итог

  • PHP — серверный язык для веба.
  • Работает через PHP-FPM + веб-сервер.
  • Код не виден пользователю.
  • <?php — начало кода, ?> не нужен в чистых файлах.
  • echo — вывод данных.
  • Для реальных проектов — фреймворк (Laravel).

Дальше — установка и первый скрипт.