Путь
Изучайте PHP
Бесплатный интерактивный онлайн-курс PHP. Вы пишете PHP в каждом уроке — синтаксис, функции, массивы, формы, сессии и основы создания динамического сайта — с подсказками ИИ, когда что-то предупреждает, и бесплатным сертификатом по завершении.
28,877+ codders записались
- Для начинающих
Помощь ИИ при написании кода
Практические интерактивные уроки
Аудио-озвучка к каждому уроку
Тесты для проверки знаний
Бесплатный сертификат о прохождении
Программа
Раздел 1
Основы
Начать разделНачатьРазвернутьСвернутьСоздайте прочную основу с помощью основных понятий и базовых навыковIntroduction to PHP
5 уроков331- 01The PHP LanguageЗадача
- 02Hello World!ЗадачаКвиз
- 03Tags and StatementsКвиз
- 04CommentsКвиз
- 05The new lineЗадачаКвиз
Variables and Data Types
9 уроков663- 01NumbersЗадачаКвиз
- 02Strings and QuotesЗадачаКвиз
- 03BooleansКвиз
- 04Naming ConventionsКвиз
- 05Recap - Variable InitЗадача
- 06Empty VariablesКвиз
- 07String ConcatenationЗадачаКвиз
- 08Getting User InputЗадачаКвиз
- 09Cast to Different TypesЗадачаКвиз
Basic Operators
8 уроков852- 01Arithmetic OperatorsЗадачаКвиз
- 02Modulo OperatorЗадачаКвиз
- 03Exponentiation OperatorЗадачаКвиз
- 04Combined AssignmentЗадачаКвиз
- 05Increment/DecrementЗадачаКвиз
- 06Operator PrecedenceЗадачаКвиз
- 07Recap - Simple CalculationsЗадача
- 08String OperatorsЗадачаКвиз
Comparison & Logical Operators
5 уроков532- 01Comparison OperatorsЗадачаКвиз
- 02Equality & IdentityЗадачаКвиз
- 03Logical Operators Part 1ЗадачаКвиз
- 04Logical Operators Part 2ЗадачаКвиз
- 05Recap - Simple LogicЗадача
Conditional Logic
6 уроков639- 01If StatementЗадачаКвиз
- 02If - ElseЗадачаКвиз
- 03The Ternary OperatorЗадачаКвиз
- 04Null Coalescing OperatorЗадачаКвиз
- 05Switch StatementЗадачаКвиз
- 06Recap - Making DecisionsЗадача
Arrays Part 1 - Indexed
7 уроков645- 01Introduction to ArraysКвиз
- 02Creating Indexed ArraysЗадачаКвиз
- 03Accessing Elements by IndexЗадачаКвиз
- 04Modifying Elements by IndexЗадачаКвиз
- 05Array Size with CountЗадачаКвиз
- 06Adding Elements to an ArrayЗадачаКвиз
- 07Recap - Managing a Simple ListЗадача
Arrays Part 2 - Associative
6 уроков540- 01Intro to Associative ArraysКвиз
- 02Accessing Values by KeyЗадачаКвиз
- 03Modifying Values by KeyЗадачаКвиз
- 04Adding New Key-Value PairsЗадачаКвиз
- 05Check if Key ExistsЗадачаКвиз
- 06Recap - Key-Value Data StoreЗадача
Циклы
7 уроков746- 01Цикл forЗадачаКвиз
- 02Цикл whileЗадачаКвиз
- 03Цикл foreachЗадачаКвиз
- 04Перебор ключей и значенийЗадачаКвиз
- 05Оператор breakЗадачаКвиз
- 06Оператор continueЗадачаКвиз
- 07Итог - Итерация по даннымЗадача
Проект: Простой список задач
Проект7 уроков1- 01Обзор проекта и данныеЗадача
- 02Добавление новой задачиПроект
- 03Отображение всех задачПроект
- 04Отметка задачи как выполненнойПроект
- 05Удаление задачиПроект
- 06Фильтрация по статусу выполненияПроект
- 07Обработка сценариев с пустым спискомПроект
Functions
8 уроков857- 01Declaring & Calling FunctionsЗадачаКвиз
- 02Function ParametersЗадачаКвиз
- 03Returning ValuesЗадачаКвиз
- 04Default Parameter ValuesЗадачаКвиз
- 05Type Declarations for ParamsЗадачаКвиз
- 06Return Type DeclarationsЗадачаКвиз
- 07Variable ScopeЗадачаКвиз
- 08Recap - Creating Reusable CodeЗадача
Final Challenges
3 уроков3- 01Challenge - Factorial CalcЗадача
- 02Challenge - Longest WordЗадача
- 03Challenge - Vowel CounterЗадача
Раздел 2
Логика и управление потоком
Начать разделНачатьРазвернутьСвернутьРазвивайте навыки решения задач и создавайте динамичные, интерактивные программыПродвинутые функции
9 уроков965- 01Анонимные функцииЗадачаКвизАудио
- 02Замыкания и 'use'ЗадачаКвизАудио
- 03Стрелочные функцииЗадачаКвизАудио
- 04Callback-функцииЗадачаКвизАудио
- 05Использование 'call_user_func'ЗадачаКвизАудио
- 06Функции переменныхЗадачаКвиз
- 07Передача по ссылкеЗадачаКвиз
- 08Рекурсивные функцииЗадачаКвиз
- 09Итоги: ассорти из функцийЗадача
Продвинутая работа с массивами
10 уроков1066- 01Добавление с помощью 'array_push'ЗадачаКвиз
- 02Удаление с помощью 'array_pop'ЗадачаКвиз
- 03Добавление с помощью 'array_unshift'ЗадачаКвиз
- 04Удаление с помощью 'array_shift'ЗадачаКвиз
- 05Слияние индексных массивовЗадачаКвиз
- 06Слияние ассоциативных массивовЗадачаКвиз
- 07Извлечение с помощью 'array_slice'ЗадачаКвиз
- 08Поиск значений с 'in_array'ЗадачаКвиз
- 09Поиск ключей с 'array_search'ЗадачаКвиз
- 10Итоги: Упражнение «Плейлист»Задача
Сортировка массивов
7 уроков747- 01Сортировка индексных массивов по возрастаниюЗадачаКвиз
- 02Сортировка индексных массивов по убываниюЗадачаКвиз
- 03Сортировка ассоциативных массивов по значениюЗадачаКвиз
- 04Сортировка ассоциативных массивов по ключуЗадачаКвиз
- 05Сортировка в естественном порядкеЗадачаКвиз
- 06Пользовательская сортировка с помощью 'usort'ЗадачаКвиз
- 07Итоги: Сортировка таблицы лидеровЗадача
Многомерные массивы
6 уроков639- 01Создание 2D-массиваЗадачаКвиз
- 02Доступ к элементам 2D-массиваЗадачаКвиз
- 03Изменение элементов 2D-массиваЗадачаКвиз
- 04Итерация с вложенными цикламиЗадачаКвиз
- 05Двумерные ассоциативные массивыЗадачаКвиз
- 06Итоги: Упражнение «Простая сетка»Задача
Журнал успеваемости студентов
6 уроков6- 01Настройка проекта: структура данныхЗадача
- 02Добавление нового студентаЗадача
- 03Добавление оценки студентуЗадача
- 04Расчет среднего балла студентаЗадача
- 05Поиск лучшего студентаЗадача
- 06Создание табеля успеваемостиЗадача
Функции высшего порядка для массивов
7 уроков745- 01Преобразование с помощью 'array_map'ЗадачаКвиз
- 02'array_map' с пользовательской функциейЗадачаКвиз
- 03Фильтрация с помощью 'array_filter'ЗадачаКвиз
- 04'array_filter' с пользовательской функциейЗадачаКвиз
- 05Свертка с помощью 'array_reduce'ЗадачаКвиз
- 06Обход с помощью 'array_walk'ЗадачаКвиз
- 07Итоги: Обработка данныхЗадача
Работа с датами и временем
6 уроков539- 01Функция 'date()'Квиз
- 02Unix-метки времени с 'time()'ЗадачаКвиз
- 03Введение в объект DateTimeЗадачаКвиз
- 04Форматирование объектов DateTimeЗадачаКвиз
- 05Изменение объектов DateTimeЗадачаКвиз
- 06Итоги: Вычисления с датамиЗадача
Обработка ошибок и исключений
7 уроков650- 01Понимание ошибок PHPКвиз
- 02Блок 'try...catch'ЗадачаКвиз
- 03Блок 'finally'ЗадачаКвиз
- 04Генерация исключенияЗадачаКвиз
- 05Создание пользовательского исключенияЗадачаКвиз
- 06Использование пользовательского исключенияЗадачаКвиз
- 07Итоги: Валидация входных данныхЗадача
Планировщик событий
Проект6 уроков1- 01Данные событийЗадача
- 02Добавление нового событияПроект
- 03Список предстоящих событийПроект
- 04Сортировка событий по датеПроект
- 05Фильтрация событий по месяцуПроект
- 06Отображение обратного отсчетаПроект
Финальные испытания
4 уроков4- 01Испытание: Проверка палиндромаЗадача
- 02Испытание: Частота символовЗадача
- 03Испытание: Сумма покупок в корзинеЗадача
- 04Испытание: Фильтр уникальных элементовЗадача
Раздел 3
Объектно-ориентированное программирование
Начать разделНачатьРазвернутьСвернутьУзнайте, как организовывать код с помощью классов, объектов и повторно используемых структурОсновы ООП
9 уроков969- 01Внешние файлыЗадачаКвиз
- 02Введение в ООПЗадачаКвиз
- 03Классы и объектыЗадачаКвиз
- 04Ключевое слово $thisЗадачаКвиз
- 05МетодыЗадачаКвиз
- 06СвойстваЗадачаКвиз
- 07Конструктор (__construct)ЗадачаКвиз
- 08Деструктор (__destruct)ЗадачаКвиз
- 09Итоги — Простой калькуляторЗадача
Пространства имен и автозагрузка
5 уроков534- 01Введение в пространства именЗадачаКвиз
- 02Ключевое слово useЗадачаКвиз
- 03Стандарт автозагрузки PSR-4ЗадачаКвиз
- 04Автозагрузчик ComposerЗадачаКвиз
- 05Итоги: структурированный проектЗадача
Свойства классов
6 уроков644- 01Свойства экземпляра и статические свойстваЗадачаКвиз
- 02Константы в классахЗадачаКвиз
- 03Статические методы и свойстваЗадачаКвиз
- 04Приватные и защищенные свойстваЗадачаКвиз
- 05Свойства Readonly (PHP 8.1)ЗадачаКвиз
- 06Итоги — Менеджер банковского счетаЗадача
Наследование
6 уроков644- 01Основы наследованияЗадачаКвиз
- 02Ключевое слово parent::ЗадачаКвиз
- 03Переопределение методовЗадачаКвиз
- 04Ключевое слово finalЗадачаКвиз
- 05Абстрактные классыЗадачаКвиз
- 06Итоги — Иерархия сотрудниковЗадача
Интерфейсы и контракты
6 уроков645- 01Введение в интерфейсыЗадачаКвиз
- 02Реализация интерфейсовЗадачаКвиз
- 03Реализация нескольких интерфейсовЗадачаКвиз
- 04Интерфейс против абстрактного классаЗадачаКвиз
- 05Type Hinting с интерфейсамиЗадачаКвиз
- 06Итоги — Калькулятор фигурЗадача
Полиморфизм
5 уроков536- 01Снова о переопределении методовЗадачаКвиз
- 02Полиморфизм через интерфейсыЗадачаКвиз
- 03Type Hinting и Union TypesЗадачаКвиз
- 04Позднее статическое связываниеЗадачаКвиз
- 05Итоги — Payment ProcessorЗадача
Инкапсуляция
6 уроков645- 01Public, Protected, PrivateЗадачаКвиз
- 02Подробный разбор модификаторов доступаЗадачаКвиз
- 03Геттеры и сеттерыЗадачаКвиз
- 04Сокрытие данныхЗадачаКвиз
- 05Constructor Promotion (8.0)ЗадачаКвиз
- 06Итоги — Система учета студентовЗадача
Магические методы
7 уроков753- 01Введение в магические методыЗадачаКвиз
- 02__toString и __debugInfoЗадачаКвиз
- 03__get, __set, __isset, __unsetЗадачаКвиз
- 04__call и __callStaticЗадачаКвиз
- 05__clone и клонирование объектовЗадачаКвиз
- 06__serialize и __unserializeЗадачаКвиз
- 07Итоги — Кастомная коллекцияЗадача
Трейты
5 уроков544- 01Введение в трейтыЗадачаКвиз
- 02Использование нескольких трейтовЗадачаКвиз
- 03Разрешение конфликтов трейтовЗадачаКвиз
- 04Абстрактные методы в трейтахЗадачаКвиз
- 05Трейты и наследованиеЗадачаКвиз
Продвинутые концепции ООП
7 уроков761- 01Композиция против наследованияЗадачаКвиз
- 02Внедрение зависимостейЗадачаКвиз
- 03Анонимные классыЗадачаКвиз
- 04Перечисления (PHP 8.1)ЗадачаКвиз
- 05Файберы (PHP 8.1)ЗадачаКвиз
- 06Глубокое погружение в клонирование объектовЗадачаКвиз
- 07Генераторы и итераторыЗадачаКвиз
Система типов и обработка ошибок
7 уроков754- 01Объявление типовЗадачаКвиз
- 02Nullable-типыЗадачаКвиз
- 03Типы объединения и пересеченияЗадачаКвиз
- 04Классы исключенийЗадачаКвиз
- 05Иерархия пользовательских исключенийЗадачаКвиз
- 06Try, Catch, FinallyЗадачаКвиз
- 07Итоги — Валидатор формЗадача
Паттерны проектирования. Часть 1
5 уроков546- 01Введение в паттерны проектированияЗадачаКвиз
- 02Паттерн SingletonЗадачаКвиз
- 03Паттерн FactoryЗадачаКвиз
- 04Паттерн ObserverЗадачаКвиз
- 05Паттерн StrategyЗадачаКвиз
Паттерны проектирования. Часть 2
7 уроков764- 01Паттерн КомандаЗадачаКвиз
- 02Паттерн АдаптерЗадачаКвиз
- 03Паттерн ДекораторЗадачаКвиз
- 04Паттерн Шаблонный методЗадачаКвиз
- 05Паттерн СостояниеЗадачаКвиз
- 06Паттерн КомпоновщикЗадачаКвиз
- 07Паттерн РепозиторийЗадачаКвиз
Проект: Управление библиотекой
Проект6 уроков1- 01Обзор проектаЗадача
- 02Классы Book и UserПроект
- 03Система выдачи книгПроект
- 04Функционал поискаПроект
- 05Интерфейс администратораПроект
- 06Тестирование и интеграцияПроект
Финальные испытания
4 уроков4- 01Платформа онлайн-обученияЗадача
- 02Банковская системаЗадача
- 03Разработка игрового персонажаЗадача
- 04Сервис аренды транспортаЗадача
Почему стоит изучать PHP на Coddy
- Запускайте настоящий PHP-код прямо в браузере. Никакого XAMPP, никакого Apache, никакого локального сервера. Каждый урок выполняет ваш PHP на сервере и сразу показывает результат.
- PHP для веба так, как он реально используется сегодня: переменные, поток управления, функции, массивы, includes, формы, суперглобальные переменные, сессии и базовые приёмы работы с базой данных. Основы PHP, которые нужны каждому веб-разработчику.
- Подсказки от ИИ помогают разбираться с ошибками и предупреждениями PHP, не выдавая готового ответа, — так что типичные проблемы вроде undefined index и багов с кавычками превращаются в полезный опыт, а не в тупик.
- Бесплатный сертификат по PHP после прохождения курса. Весомое подтверждение навыков для вакансий в веб-разработке, по WordPress и Laravel, где PHP до сих пор остаётся базовым требованием.
Частые вопросы об изучении PHP
Легко ли изучать PHP?
PHP — один из самых простых языков для старта. Синтаксис прощает ошибки, его можно вставлять прямо в HTML, а результат сразу видно в браузере. Большинство новичков успевают собрать рабочую PHP-страницу за первый час. Более сложные темы (безопасность, сессии, работа с базами данных) появляются позже и вводятся постепенно.
PHP всё ещё стоит учить в 2026 году?
Да. PHP по-прежнему держит на себе значительную часть веба — на одном WordPress работает около 40% всех сайтов, а фреймворки вроде Laravel и Symfony живы и активно развиваются. Для разработки на WordPress, агентской веб-работы или любого бэкенда, который общается с MySQL, PHP — очень практичный навык.
Сколько времени нужно, чтобы выучить PHP?
Основы PHP — переменные, условия, циклы, функции, массивы — займут одну-две недели ежедневной практики. На небольшой динамический сайт с формами, сессиями и запросами к базе данных обычно уходит ещё от одного до трёх месяцев. Углубление в Laravel или разработку под WordPress — это уже отдельный путь.
В чём разница между PHP и HTML?
HTML — это язык разметки, который описывает структуру веб-страницы. PHP — это язык программирования, который работает на сервере и генерирует HTML ещё до того, как страница попадёт в браузер. Именно так делаются динамические страницы, авторизация пользователей, сохранение данных из форм и так далее. Они работают в связке: HTML отвечает за вёрстку, PHP — за логику.
Можно ли изучать PHP онлайн бесплатно?
Да. Интерактивный курс по PHP — бесплатный: уроки, практические задания, тесты и сертификат. PHP выполняется на сервере в изолированной среде, так что не нужно ставить Apache, MySQL или XAMPP локально, чтобы начать писать код.
Получу ли я сертификат PHP после курса?
Да. После прохождения курса PHP вы получаете бесплатный сертификат — его можно добавить в резюме или опубликовать в LinkedIn. Хорошее дополнение к сайтам на WordPress, приложениям на Laravel и другим веб-проектам из вашего портфолио.