Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Основной учебник PHP8+

Основы

Введение в язык PHP Начало работы Выполнение кода PHP Проблема с кодировками Вывод ошибок PHP Полный код для запуска PHP Улучшенный код для запуска Обзор начальных PHP команд Комментарии в PHP Комментарии в учебнике Дампинг переменных Функции в PHP Переменные Использование переменных Изменения значений переменных Математические операции с числами Математические операции с переменными Приоритет математических операций Равный приоритет Группирующие скобки Нюансы группировки Дроби Отрицательные числа Остаток от деления Возведение в степень Приоритет возведения в степень Строки Сложение строк Пробелы при сложении строк Длина строки Проблема с кириллицей Теги Атрибуты тегов Логические значения Значение null Автоматическое преобразование типов Автоматическое преобразование к строке Нюансы преобразования к строке Преобразование к числу Преобразование к дроби Преобразование дроби к целому Преобразование числа к строке Символы строки Цифры в строке Обращение к цифрам числа Нюансы работы с операцией присваивания Сокращенные операции Инкременация Префиксный и постфиксный тип Практика на поиск ошибок Практика на операции Практика на формулы

Массивы

Введение в массивы Просмотр содержимого массива Отдельный элемент массива Ассоциативные массивы Хитрость с ключами Порядок элементов Длина массива Изменение элементов Перезапись элементов массива Инкрементация элементов Заполнение массивов Явное указание ключей Ключи из переменных Практика на поиск ошибок

Условия

Конструкция if-else Операторы больше и меньше Проверка на равенство Проверка на неравенство Сравнение переменных Типы данных и конструкция if-else Числа в кавычках Равенство по значению и типу Неравенство по значению и типу Нюансы при сравнении типов данных Сложные условия в if-else Логическое И Логическое ИЛИ Приоритет операций сравнения Группировка условий Инвертирование высказываний Конструкция if-else и булевы значения Нестрогое сравнение логических значений Сокращенный if Нюанс сокращенных операций Команда isset Подавление ворнинга Проверка элементов массива Команда empty Необязательность команды else Необязательность фигурных скобок Проблема необязательности скобок Комбинации if-else Конструкция elseif Вложенные if Конструкция switch Необязательность default Конструкция match Необязательность break Тернарный оператор Оператор объединения с null Цепочки операторов объединения с null Логические операции Определение части часа Проверка длины строк и массивов Проверка символа строки Проверка остатка от деления Практика на поиск ошибок Практика if else

Циклы

Введение Цикл foreach Цикл foreach с ключами Цикл while Цикл for Условия в циклах Накопление суммы чисел Накопление суммы элементов Формирование строк в цикле Необязательность фигурных скобок Проблема необязательности скобок Инструкция break Инструкция continue Работа с флагами Вложенные циклы Цикл for для массивов Заполнение массивов в цикле Изменение массивов в цикле Советы по написанию кода Практика на поиск ошибок Практика на циклы

Многомерность

Введение Трехмерный массив Ассоциативные массивы Произвольные массивы Перебор многомерных массивов Перебор трехмерного массива Работа с ключами Заполнение многомерных массивов Заполнение числами по порядку Массив ассоциативных массивов Конвертация многомерных массивов

Математические функции

Степени Округление Экстремумы Модули Операции с массивами

Строковые функции

Длина строки Регистр символов Вырезание строк Проверка строк Поиск по строкам Разбиение строк Очистка концов строки Вывод строки со вставкой Форматирование представления чисел Переворот строки Заполнение строки Работа с тегами Коды символов Подсчет подстрок Части строк

Функции массивов

Поиск по массивам Концевые элементы Слайсинг массивов Сплайсинг массивов Диапазон в массиве Заполнение массивов Слияние массивов Ключи-значения Переворот Замена Удаление дублей Подсчет элементов Разбиение на подмассивы Сортировка Множественные операции

Рандом

Случайное число Случайный элемент массива Перемешивание массивов Перемешивание строк

Время

Работа с timestamp Форматирование Разбор дат в свободном формате Проверка корректности Часовой пояс Изменение Строковое сравнение Сравнение даты без года Попадание даты в промежуток Сравнение timestamp

Пользовательские функции

Введение Параметры функции Несколько параметров Параметры-переменные Необязательные параметры Инструкция return Последовательный вызов функций Тонкое место return Цикл и return Применение return в циклах Прием работы с return Флаги в функциях Логические операторы в функциях Советы по функциям Практика на поиск ошибок Практика на функции

Область видимости

Ссылки-примитивы Ссылки-массивы Ссылки в foreach Внутренние переменные Внешние переменные Одноименные переменные Глобальные переменные Изменение параметров Параметры-ссылки

Рекурсия

Рекурсия Пример с параметром Сумма элементов массива Рекурсия и многомерные массивы Сумма многомерного массива Манипуляции с элементами

Регулярные выражения

Введение Операторы повторения Группирующие скобки Экранировка спецсимволов Список специальных символов Фигурные скобки Ограничение жадности Группы символов Наборы символов Инвертирование наборов символов Особенности кириллицы Спецсимволы внутри наборов Группы символов внутри наборов Спецсимволы-исключения внутри наборов Символ шляпки внутри наборов Особенности дефиса внутри наборов Начало и конец строки Конец или начало слова Команда 'или' Ограничители Экранировка ограничителей Обратный слеш Проверка строки Автоматическое тестирование регулярок Проверка всей строки Карманы при поиске Поиск всех совпадений Все совпадения на карманы Изменение поведения поиска Несохраняющие скобки Карманы при замене Карманы в выражении Именованные карманы Именованные карманы внутри выражения Общий номер карманов Просмотр вперед Просмотр назад Замена с коллбэком Модификаторы Игнорирование регистра регулярок Комментарии в регулярке Работа с юникодом в регулярках Изменение жадности регулярок Экранировка обычных символов в регулярках Несколько модификаторов регулярок Автоматическая экранировка спецсимволов Фильтрация массива Разбиение строки в массив

Формирование строк

Вставка переменных Вставка элементов массива Вставка элементов ассоциативных массивов Цикл и вставка переменных Вставка элементов массивов в цикле Вставка элементов многомерных массивов в цикле Генерация тегов Генерация тегов с атрибутами Цикл и генерация тегов Цикл и генерация тегов из массивов Цикл и генерация тегов и атрибутов Цикл и генерация HTML таблиц Генерация HTML таблицы с помощью одного цикла Генерация HTML таблицы с помощью двух вложенных циклов Вставка PHP кода в HTML Короткая команда echo Вывод переменной в HTML Вывод элементов массива в HTML Условия и разрыв PHP кода Блок else в разрыве PHP кода Блок elseif в разрыве PHP кода Циклы и разрыв PHP кода Массив в цикле в разрыв PHP кода

Формы

Введение в формы Метод отправки формы Получение данных форм Получение данных форм методом GET Получение данных форм методом POST Обработка формы в одном файле Скрытие формы после отправки Сохранение значений формы Сохранение значения по умолчанию формы Сокращенный код для сохранения значений по умолчанию Элемент textarea Сохранение значения textarea после отправки Чекбокс Нюансы использования чекбоксов Сохранение значения в чекбоксе Радиокнопки Сохранение значения в радиокнопках Селекты Атрибут value в селектах Сохранение значения в селектах GET-запросы GET-запросы с помощью ссылок Практика

Сессии

Введение в сессии Возможные проблемы Использование сессий на одной странице Удаление сессий Завершение всей сессии Сессии и формы Запись массивов в сессии

Cookies

Введение в куки Проблема установки кук Мгновенная установка кук Счетчик обновления страницы Время жизни куки Удаление кук Мгновенное удаление кук

Файловая система

Чтение файлов Запись файлов Комбинация операций Относительные пути Абсолютные пути Преимущества абсолютного пути Абсолютные пути к скрипту Переименовывание файлов Перемещение файлов Копирование файлов Удаление файлов Определение размера файлов Проверка существования файлов Создание папок Удаление папок Переименование папок Перемещение папок Чтение содержимого папки Отличаем папку от файла Разбираем содержимое папки Вставка файлов Деление верстки на элементы Запись вставки в переменную Подключение файлов Однократное подключение файлов Запись подключения в переменную

Базы данных

Введение в базы данных PhpMyAdmin Тестовая таблица users Подготовительные манипуляции Отправка запросов к базе данных Поиск ошибок в базе данных Тестирование работоспособности Проблемы с кодировками Полный тестовый код Получение результата Получение результата в виде массива Формирование массива в цикле Выборка записей Логические операции Поля выборки Вставка записей Вставка записей при отсутствующих столбцах Обновление записей Удаление записей Сортировка записей Ограничение количества Подсчет количества Получение количества Продвинутые запросы

Организация БД

Связывание таблиц Получении данных из связанных таблиц Цепочка связанных таблиц Связывание через таблицу связи Родственные связи Несколько потомков Двойная связь Практика

Практика БД

Тестовая таблица users Оформление вывода Удаление данных Просмотр данных Добавление данных Редактирование данных

Работа с HTTP

Учебник HTTP Метод HTTP запроса HTTP заголовки запроса Массив заголовков HTTP запроса Заголовки HTTP ответа Проблема с заголовками HTTP ответа Проблема с include Отдача стартовой строки HTTP ответа Отдача статуса HTTP ответа

Редиректы

Введение в редиректы Мгновенный редирект GET запросы и редирект Саморедирект с добавлением параметров Флеш сообщения Массив флеш сообщений Сохранение форм Сообщения об успехе отправки Редирект при валидация формы

Аутентификация

Введение Авторизация Сессии Выход из сессии Регистрация Авторизация сразу при регистрации Добавление id в сессию Скрытие пароля Проверка логина на занятость Валидация Хеширование Добавление соли в регистрацию Добавление соли в авторизацию Функция password_hash Профиль Аккаунт Смена пароля Подтверждение пароля Удаление аккаунта Права Регистрация с разделением прав Права и нормализация базы данных

Движок сайта

Введение Использование htaccess Движок на файлах Тайтл в движке на файлах Тайтлы в массиве Тайтлы в контенте Страница 404 в движке на файлах Движок на базе данных ЧПУ в движке Простой роутинг Роутинг с именованными параметрами Несколько параметров в роуте Практика
byenru