Введение в 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
Схема запроса:
- Браузер отправляет HTTP-запрос на сервер.
- Веб-сервер (Nginx/Apache) передаёт запрос PHP-FPM.
- PHP выполняет скрипт.
- Результат (обычно 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 — только для изучения и скриптов.
Что дальше
- Установка PHP и настройка окружения
- Переменные и типы
- Операторы
- Условия и циклы
- Массивы
- Функции
- Строки
- Подключение файлов
Итог
- PHP — серверный язык для веба.
- Работает через PHP-FPM + веб-сервер.
- Код не виден пользователю.
<?php— начало кода,?>не нужен в чистых файлах.echo— вывод данных.- Для реальных проектов — фреймворк (Laravel).
Дальше — установка и первый скрипт.