
Файлы в PHP: что нужно знать до первой записи на диск
Прежде чем читать и писать файлы в PHP, разберитесь с путями, правами и режимами открытия. Один неверный флаг — и вы затрёте данные или получите пустой ответ без ошибки.

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

Почему сессии слетают после логина, теряются на поддоменах и портят производительность. Разбор типичных ошибок работы с сессиями в PHP 8.x и рабочие способы их обойти.

За полчаса сделаете рабочую форму на PHP: покажем разметку, приём данных на сервере, проверку полей и защиту от подделки запросов. Код можно скопировать и запустить.

Что такое класс, свойство, метод, конструктор и видимость в PHP 8.x — на примере корзины интернет-магазина, которую можно собрать и запустить у себя.

Как объявлять строки в PHP, чем отличаются кавычки, как соединять и резать текст. Разбор с примерами, которые можно запустить прямо сейчас.

За полчаса разберётесь, как создавать индексные и ассоциативные массивы в PHP, перебирать их и не спотыкаться о частые ошибки новичка.

Warning вместо остановки, Throwable вместо Exception, пустой catch, который прячет причину падения. Разбираем, как обрабатывать ошибки в PHP 8.x так, чтобы находить их в логах, а не гадать.

Пользователь оплатил заказ, платёж прошёл, но письмо не ушло — а он видит белый экран. Разбираем, как в PHP 8.x разделять ошибки и исключения, чтобы такие случаи не терялись молча.

Разница между ошибками и исключениями, почему @ и die() вредят, и как настроить перехват так, чтобы вы видели проблему в логе, а пользователь — вежливую страницу вместо белого экрана.

За полчаса вы напишете первый класс, наследника и интерфейс на PHP 8.x, запустите их в консоли и увидите результат. Разберём синтаксис, который часто путают новички.

Как поставить Composer, подключить первый пакет и получить рабочую автозагрузку классов без единого require. Пошагово, с проверками на каждом этапе.

Клиент видит в личном кабинете подписку, которая якобы истекла вчера, хотя оплатил её час назад. Виноват не код бизнес-логики, а незаметная ошибка с часовыми поясами и мутабельностью объектов дат.