Книга опытных разработчиков описывает последнюю версию языка разработки серверных сценариев РНР 7. Рассмотрены все нововведения языка и связанные с ними изменения в разработке современных Wеb-сайтов. Изложение ведется с упором на объектно-ориентированное программирование, шаблоны проектирования, итераторы, генераторы, а также взаимодействие с современными базами данных (PostgreSQL и Redis).
В конце глав приведены более 100 заданий для закрепления материала и освоения не вошедших в книгу разделов языка.
- Простейший PHP-скрипт.
- Альтернативные теги.
- Допускается несколько PHP-вставок в HTML-код.
- Завершающий тег ?> можно опустить.
- Использование точки с запятой.
- Альтернативная запись скрипта из листинга 3.5.
- Составное выражение.
- Составное выражение в нескольких PHP-вставках.
- Комментарии.
- Комментарии действуют только внутри <?php и ?>.
- Комментарий в списке аргументов функции.
- Использование инструкции include.
- included.php
- Зависимость переменных от регистра.
- Объявление чисел.
- Инициализация переменных одним значением.
- Объявление целочисленных переменных.
- Объявление вещественных чисел.
- Объявление переменной логического типа.
- Объявление строки.
- Двойные кавычки.
- Подстановка переменной.
- Экранирование символа $.
- Экранирование двойных кавычек.
- Одиночные кавычки.
- Границы переменной.
- Использование обратных кавычек.
- Использование последовательности <<<.
- Использование переменных в последовательности <<<.
- Обращение к несуществующей переменной.
- Использование константы null.
- Использование конструкции unset().
- Использование конструкции isset().
- Использование конструкции empty().
- Использование функции gettype().
- Использование функции is_int().
- Использование функций is_float() и is_double().
- Использование функций gettype() при анализе типов данных float и double.
- Автоматическое преобразовние строки в число.
- Преобразование сложных строк в число.
- Преобразование к логическому типу.
- Преобразовние типа float к int.
- Определение четности числа.
- Использование функции settype().
- Использование функции intval().
- Создание динамической переменной.
- Использование функции eval().
- Динамическое имя переменной.
- cast_resource.php
- Объявление класса.
- Класс точки Point.
- Попытка повторного определения класса Point.
- Попытка повторного включения класса Point.
- Удачная попытка повторного включения класса Point.
- Создание объекта точки.
- Объект - это обычная переменная.
- Явное уничтожение объекта.
- Попытка использование переменной класса.
- Класс PrivatePoint.
- Попытка присваивания значений переменным объкта.
- Переменные объекта независимы.
- Объявление статической переменной.
- Использование статических переменных.
- Оператор = с переменными.
- Оператор = с объектами.
- Создание ссылок для обычных переменных.
- Клонирование объекта.
- Создание констант.
- Создание констант, не зависящих от регистра.
- Попытка переопределения константы.
- Использование функции defined().
- Использование функции constant().
- Константа с динамическим именем.
- Использование предопределённых констант.
- Объявление констант в классах.
- Проверка существования констант.
- Использование оператора "точка".
- Альтернативная запись.
- Использование оператора .=.
- Использование оператора "запятая".
- Использование круглых скобок в echo.
- Использование строковой функции print().
- Использование арифметических операторов.
- Использование оператора деления /.
- Получение целочисленного результата деления.
- Получение остатка от деления.
- Проверка числа на чётность.
- Квадратный корень числа.
- Префикс, постфикс.
- Использование оператора инкремента.
- Применение инкремента к строке.
- Использование оператора &.
- Более сложное использование оператора &.
- Использование оператора |.
- Использование оператора ^.
- Использование оператора ~.
- Использование оператора <<.
- Использование оператора >>.
- Использование операторов сравнения.
- Использование операторов эквивалентности.
- Использование условного оператора.
- Сокращенная запись оператора if.
- Использование конструкции if ... elseif.
- Альтернативный синтаксис оператора if.
- Использование оператора && (логическое И).
- Альтернативное представление двойного условия.
- Двойное условие совместно с блоком else.
- Неудачное дублирование кода.
- Использование оператора || (логическое ИЛИ).
- Использование оператора or (логическое ИЛИ).
- Проверка выполнения функции.
- Получение содержимого файла.
- Удачное получение содержимого файла.
- Неудачное получение содержимого файла.
- Проверка выполнения функции.
- Неудачное получение содержимого файла.
- Использование условного оператора.
- Использование значения по умолчанию.
- Пример использования оператора switch.
- Вывод чисел.
- Альтернативная форма оператора switch.
- Перепишим с помощью if.
- Использование сложных логических условий.
- Сложный swith
- Использование оператора goto.
- Использование оператора while.
- Использование оператора while.
- Использование оператора break.
- Пример оператора continue.
- break во вложенных циклах.
- Указание номера цикла в операторе break.
- Прерывание внешнего цикла из внутреннего.
- Условный цикл while.
- Декремент в while.
- Альтернативный синтаксис оператора while.
- Использование оператора do...while.
- Использование цикла for.
- Использование декремента в цикле for.
- Альтернативное использование цикла for.
- Несколько переменных в блоке инициализации.
- Использование шага равного 5.
- Отсутствие выражения начало и тело.
- Отсутствие выражений в цикле for.
- Программа нахождения простых чисел.
- Альтернативный синтаксис оператора for.
- Создание массива конструкцией array.
- Вывод структуры массива.
- Альтернативный способ создания массива.
- Назначение индекса первому элементу массива.
- Назначенме индексов всем элементам массива.
- Непронумерованные элементы автоматически получают значение.
- Создание массива путём присвоения неинициализированным элементам массива новых значений.
- Автоматическое назначение индекса.
- Приведение переменной к массиву.
- Создание ассоциативного массива.
- Указание ключей при обращении к элементам ассоциативного массива.
- Создание элементов ассоциативного массива посредством прямого обращения.
- Попытка создания двух элементов массива с одинаковыми ключами.
- Создание мноrомерноrо массива.
- Интерполяция элемента массива в строку.
- Интерполяция элемента ассоциативного массива в строку.
- Интерполяция элемента многомерного массива в строку.
- Использование фигурных скобок.
- Использование конструкции list().
- Попытка преобразования элементов ассоциативного массива в переменные.
- Инициализация переменной значением элемента массива.
- Обмен значений двух переменных.
- Обход массива в цикле for.
- Обход массива в цикле foreach.
- Вариант обхода массива в цикле foreach.
- Обход многомерных массивов в цикле.
- Слияние массивов при помощи оператора +.
- Слияние массивов с одинаковыми индексами.
- Использование функции array_merge().
- Сравнение массивов.
- Сравнение на эквивалентность массивов.
- Сравнение на эквивалентность массивов по ключам.
- Проверка на существование элемента массива.
- Исnоnьзование функции is_array().
- Поиск элемента в массиве.
- Поиск элемента в массиве с различием по типу.
- Поиск ключей массива.
- Использование функции array_search().
- Удаление элемента массива.
- Удаление массива.
- Создание массива конструкцией array.
- Вывод результата внутри функции.
- Вызов функции до её объявления.
- Условное объявление функции.
- Ошибка при вызове функции.
- Параметры функции.
- Динамическое вычисление значений параметров функции.
- Тиnы параметров и возвращаемого значения.
- Передача арrумента no значению.
- Передача аргумента по ссылке.
- Необязательные параметры.
- Ошибка при объявлении функции.
- Переменное число параметров.
- Использование оператора ... .
- Область видимости переменных.
- Использование глобальной переменной.
- Реинициализация локальной переменной.
- Использование статической перемнной.
- Функция возвращает массив.
- Преобразование массива в переменные.
- Рекурсивная функция.
- Объявление вложенной функции.
- Использование динамических имен функций.
- Анонимная функция.
- Сортировка массива функцией sort.
- Сортировка массива точек.
- Замыкания.
- Обращение к строке, как к символьному массиву.
- Вывод UTF-8 русской буквы А.
- Кодировка ASCll.
- Подсчет количества символов в строке.
- Обход строки в цикле.
- Использование функции chr().
- Использование функции ord().
- Извлечение даты, месяца и года из строки.
- Исnользование функции strpos().
- Получение подстроки.
- Замена.
- Удаление тегов и .
- Подсчет количества замен в строке.
- Использование функции trim().
- Исnользование функции nl2br().
- Работа с определителями типа.
- Код цвета.
- Форматирование числового вывода.
- Форматирование числового вывода.
- Использование функции explode().
- Использование функции implode().
- Разбиение текста функцией wordwrap().
- Упаковка и распаковка массивов и объектов.
- Пример использования функции json _encode().
- Предотвращение кодирования в UTF-8.
- Использование функции json_decode().
