Книга Самоучитель PHP 7 опытных разработчиков описывает последнюю версию языка разработки серверных сценариев РНР7. Рассмотрены все нововведения языка и связанные с ними изменения в разработке современных WеЬ-сайтов. Изложение ведется с упором на объектно-ориентированное программирование, шаблоны проектирования, итераторы, генераторы, а также взаимодействие с современными базами данных (PostgreSQL и Redis). В конце глав приведены более 100 заданий для закрепления материала и освоение не вошедших в книгу разделов языка. Электронный архив с исходными кодами доступен на сайтах издательства и GitHub.
Оглавление книги Самоучитель PHP 7, Максим Кузнецов, Игорь Симдянов
Предисловие ................................................................................................................... 11
Объектно-ориентированный подход ............................................................................................ 11
PostgreSQL и Redis ........................................................................................................................ 11
Задания ........................................................................................................................................... 12
Исходные коды .............................................................................................................................. 12
Благодарности ................................................................................................................................ 13
Глава
1. Что представляет собой РНР?
1.1. Достоинства и недостатки ...................................................................................................... 15
1.2. Структура РНР ........................................................................................................................ 17
1.3. Сопутствующие технологии .................................................................................................. 17
Задание ........................................................................................................................................... 18
Глава
2. Установка РНР .............................................................................................. 19
2.1. Установка в Windows ............................................................................................................. 19
2.2. Установка в Мае OS Х ........................................................................................................... 21
2.3. Установка в Linux (Ubuntu) .................................................................................................... 22
2.4. Встроенный сервер ................................................................................................................. 22
2.5. Файл hosts ................................................................................................................................ 23
2.6. Вещание вовне ........................................................................................................................ 24
2. 7. Настройка РНР ........................................................................................................................ 24
2.8. Расширения ............................................................................................................................. 26
2.9. Документация .......................................................................................................................... 27
Задания ........................................................................................................................................... 27
Глава
3. Быстрый старт ............................................................................................... 29
3.1. Скрипты ................................................................................................................................... 29
3.2. Начальные и конечные теги ................................................................................................... 31
3.3. Использование точки с запятой ............................................................................................. 32
3.4. Составные выражения. Фигурные скобки ............................................................................ 33
3.5. Комментарии ........................................................................................................................... 34
3.6. Вюпочение РНР-файла ........................................................................................................... 36
Задания ........................................................................................................................................... 37
4 Оглавление
Глава 4.
Переменные и типы данных ....................................................................... 39
4.1. Объявление переменной. Оператор = ................................................................................... 39
4.2. Типы данных ........................................................................................................................... 40
4.3. Целые числа ........................................................................................................................... .41
4.4. Вещественные числа ............................................................................................................. .42
4.5. Логический тип ...................................................................................................................... .43
4.6. Строки .................................................................................................................................. ... 44
4.7. Кавычки ... "" ... "".""".""""."."" ........ " ... "."""." ........ " ...... " ... " ............................. ""."" ....... 44
4.8. Оператор <<< ......................................................................................................................... 47
4.9. Обращение к неинициализированной переменной. Замечания (Notice).""." ...... ""."" ... "48
4.10. Специальный тип пи// .. "."" .... " .. " ............. "."" ... "" ... " .............. """."." .. """.""" ...... " ..... "48
4.11. Уничтожение переменной. Конструкция unset0 ..................... """""""" ........ " ... """ ... ""49
4.12. Проверка существования переменной. Конструкции isset() и empty() " ... ""." ............ " ... 50
4.13. Определение типа переменной .... " ... " ............. " ........ " ............. "."".""."." ... " .................... 52
4.14. Неявное приведение типов .................... """." ... " ..................... "" ... " .... "."" ..... "."" ... """ .. 54
4.15. Явное приведение типов ."."" .................. ""." ..... " ... " ................ "" ... " .. "" ... ""." .......... """55
4.16. Динамические переменные"" .................. "." ........................ " ...... "".""" ... """ .......... " .. "."58
Задания ........................................................................................................................................... 59
Глава
5.
Классы и объекты
...... " ... "." ................................ " ....................................... 61
5.1. Собственные типы данных ."."." ............... ".""" ... " ....... " ... " ........... """ ... """" ......... " ...... ".61
5.2. Создание класса" .................... ""."""."" ............. " ... " ......... "" .... ""."" ..... "."""." ................. 62
5.3. Разделение классов и остального кода .. " .......... ".""."."" ..... " .... "."""".""."." ................... 63
5.4. Создание объекта .... " .............. " ........................................... ""."" .. """" .. "".""." .................. 65
5.5. Область видимости переменных класса ............ "."."".""" ... "." .... " .. """ ... ""." ........... " ... "66
5.6. Спецификаторы доступа ." ..... " ... ""."." ..... " ....... ".""." ..... ".""."."" ... "" ....... " ....... " ......... ".67
5.7. Статические переменные класса ............... " .. "."""." ... " ..... " ...... ""."".".".""" ................ " .. 68
5.8. Ссьшки на переменные.""." ....... ""."." ............... ""."""."".""." ..... "."" ....... " .. " .................. 69
5.9. Клонирование объектов ............ " ... "." ....... " ...... ""."""."".""" .... ""."" ....... " .... "." ......... "". 70
Задания ............. " ..... """." ..... " ......... "."."." ......... " ....... " .. "" ..... ".".""".""." .... ""."" ................... 71
Глава
13. Взаимодействие РНР с HTML ................................................................ 181
13 .1. Передача параметров методом GET ................................................................................. 181
13.2. НТМL-форма и ее обработчик .......................................................................................... 184
13.3. Текстовое поле .................................................................................................................... 188
13 .4. Поле для приема пароля ..................................................................................................... 189
13.5. Текстовая область ............................................................................................................... 190
13.6. Скрытое поле ...................................................................................................................... 191
13.7. Флажок ................................................................................................................................ 193
13.8. Список ................................................................................................................................. 195
13.9. Переключатель .................................................................................................................... 197
13.10. Загрузка файла на сервер ................................................................................................. 198
13.11. Переадресация .................................................................................................................. 201
Задания ......................................................................................................................................... 204
Глава
14. Суперrлобальные массивы ..................................................................... 205
14.1. Типы суперrлобальных массивов ...................................................................................... 205
14.2. Cookie ...................................................................................................... : ........................... 206
14.3. Сессии .................................................................................................................................. 208
14.4. Переменные окружения ..................................................................................................... 210
14.5. Массив $_SERVER .................... " ........................................................................................ 212
14.5.1. Элемент $_SERVER['DOCUMENT_ROOT'} ......................................................... 212
14.5.2. Элемент $_SERVER['H1ТP _ACCEPT'} ................................................................. 212
14.5.3. Элемент $_SERVER['H1ТP_ACCEPT_LANGUAGE'} ......................................... 213
14.5.4. Элемент $_8ERVER['HТТP _HOST'} ... ~ .................................................................. 214
14.5.5. Элемент $_SERVER['HТТP _REFERER'} ............................................................... 214
14.5.6. Элемент $_SERVER['H1ТP _USER_AGENT'} ........................................................ 214
14.5.7. Элемент $_SERVER['REMOTE_ADDR'} ............................................................... 214
14.5.8. Элемент $_8ERVER['SCRIPT_FILENAME'} .................................................... " ... 215
14.5.9. Элемент $_SERVER['SERVER_NAME'} ............... " ................................................ 215
14.5.10. Элемент $_SERVER['REQUEST_METHOD'} ...................................................... 216
14.5.11. Элемент $_SERVER['QUERY_STRING'} ............................................................. 216
14.5.12. Элемент $_SERVER['PHP _SELF'} ....................................................................... 211
14.5.13. Элемент $_SERVER['REQUEST_URl'} ................................................................ 211
Задания ......................................................................................................................................... 217