Асноўны падручнік 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 Паслядоўны выклік функцый Toнкае месца 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 у рухавіку на файлах Рухавік на базе даных ЧПУ ў рухавіку Просты рутынг Рутынг з іменаванымі параметрамі Некалькі параметраў у руце Практыка