Синтаксис PHP
Минимум, чтобы писать код
Теги и вывод
Код живёт между <?php и ?>. Всё вне них уходит в браузер как обычный HTML. Вывод — echo или print.
<?php
$name = "Анна";
echo "Привет, {$name}";
Переменные
Начинаются с $, объявлять тип не нужно. Имена чувствительны к регистру: $Name и $name — разные переменные. В PHP 8 типы можно указывать явно, но это не обязательно.
$age = 30; // целое
$price = 99.90; // дробное
$active = true; // булево
$tags = null; // пусто
Строки
Одинарные кавычки не подставляют переменные, двойные — подставляют. Это не мелочь: '$name' выведет именно $name.
echo 'Привет, $name'; // Привет, $name
echo "Привет, $name"; // Привет, Анна
Массивы
В PHP один тип на списки и словари — array. Список создаётся через [], словарь — с ключами.
$list = [1, 2, 3];
$user = ['name' => 'Анна', 'age' => 30];
echo $user['name'];
$list[] = 4; // добавить в конец
Условия и циклы
if ($age >= 18) {
echo "Взрослый";
} elseif ($age > 0) {
echo "Ребёнок";
} else {
echo "Неизвестно";
}
foreach ($list as $item) {
echo $item;
}
Для словаря foreach ($user as $key => $value). Цикл for нужен реже — обычно хватает foreach.
Функции
function sum(int $a, int $b): int {
return $a + $b;
}
echo sum(2, 3);
Типы в параметрах и возврате не обязательны, но с ними ошибки ловятся раньше.
Подключение файлов
include подключает файл и продолжает работу при ошибке, require — останавливает. Для шапки, подвала и конфигурации используют require_once.
Частые ошибки
- Забытая точка с запятой. Сообщение указывает на следующую строку — ищите выше.
- Одинарные кавычки вместо двойных. Переменная не подставилась.
- Сравнение через = вместо ==. Первое присваивает, второе сравнивает.
- Вывод до заголовков. Любой
echoдоheader()ломает редирект.
Нужен сайт, а не статья?
Напишу серверную часть на PHP: формы, кабинет, API. С 2009 года, по договору, с поддержкой после запуска.
Полезно по теме: PHP с нуля, установка PHP, формы.