- Функция— это блок кода, который может быть именован ивызван повторно
PHP Data Objects
Расширение для работы с БД
Плюсы:
Может поддерживать любую СУБД, для которой существует PDO-драйвер
Поддержка именованных параметров
Минусы:
Средствами PDO нельзя создавать любые множественные запросы(устаревшая?)
Незначительно проигрывает в производительности mysqli и mysql.
Четыре скалярных типа:
• boolean (двоичные данные)
• integer (целые числа)
• float(числа с плавающей точкой или ‘double’)
• string (строки)
Два смешанных типа:
• array (массивы)
• object (объекты)
И два специальных типа:
• resource (ресурсы) это специальная переменная, содержащая ссылку на внешний ресурс.
• NULL (“пустой” тип) Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL (пустой тип).
Переменная считается NULL если:
• ей была присвоена константа NULL;
• ей еще не было присвоено какое-либо значение;
• она была удалена с помощью unset().
Существуют также несколькопсевдотипов:
• mixed (смешанный) mixed говорит о том, что параметр может принимать множество (но не обязательно все) типов.
gettype(), например, принимает все типы PHP, тогда как str_replace() принимает строки и массивы.
• number (числовой) говорит о том, что параметр может быть либо integer, либо float.
• callback (обратного вызова)
Режим строгой типизации применяется к конкретному файлу. Для включения режима используют директиву declare(strict_types=1); в начале файла.
Плюсы:
Повышает надежность (позволяет избегать багов, связанных с неправильным присваиванием и сравнением).
Повышает читабельность кода.
Самодокументированность.
Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости
Суперглобальными переменными являются:
• $GLOBALS
• $_SERVER
• $_GET
• $_POST
• $_FILES
• $_COOKIE
• $_SESSION
• $_REQUEST
• $_ENVМетод организации обмена, который подразумевает использование буфера для временного хранения данных.
Приложение получает возможность выполнить свою логику, сохраняя выходные данные.
2 способа:
php.ini и значение on в output-buffering - включает буферизацию для всех файлов
функция ob_start в скрипте, вывод которого надо буферизировать
ob_end_flush—Сбросить (отправить) буфер вывод и отключить буферизацию вывода
ob_get_contents—Возвращает содержимое буфера вывода
cookies - данные, которые передаются браузеру в заголовках ответа сервера для отслеживания возвращающихся посетителей.
Работает через суперглобальный массив $_COOKIE.
Устанавливаются функцией setcookie().
$_COOKIE хранит информацию о куки, доступ осуществляется по ключу (параметр name).
Фукнция должна вызываться до любого вывода данных в браузер. Но это необязательно, если использовать буферизацию.
Чтобы удалить куки, нужно ее перезаписать со всеми параметрами, которые были использованы при ее установке, но с датой в прошлом.
Функция, которая выполняется после завершения работы скрипта. Регистрируется функцией register_shutdown_function(). Фукнции буту выполняться по порядку регистрации.
Что такое анонимные функции? Что такое замыкания?
Анонимные функции, позволяют создавать функции, не имеющие определенных имен. Они наиболее полезны в качестве значенийcallback-параметров
Анонимные функции реализуются с использованием классаClosure.
Замыкание – механизм, с помощью которого можно “захватить” переменные из внешнего окружения и использовать их внутри, только для анонимных функций.
Замыкания полезны в тех ситуациях, когда некоторая часть логики должна выполняться в ограниченном контексте, но при этом должна сохранить возможность взаимодействия с окружающей средой, внешней по отношению к этому контексту.
Замыкание позволяет не таскать за собой гору переменных.
Исключения - способ обработки ошибок, позволяют сообщить о неожиданной ситуации в программе.
Исключение - объект класса Exception или наследников.
В php это мб любой класс, реализующий интерфейс Throwable. Предполагается, что для каждого типа ошибки создаются свои классы исключений, что позволяет потом их различать.
Исключение можно сгенерировать через trow new Exception.
try catch
у каждого try дб хотя бы 1 catch или finally
В php7 и выше catch может принимать несколько типов исключений (через |).
finally будет выполняться после всех try и catch, независимо от того, было ли брошено исключение.