PHP Flashcards
- Что такое переменная, функция?
- Переменная - именованное хранилище данных(ячейка памяти)
- Функция— это блок кода, который может быть именован ивызван повторно
- Какие различия между isset() и empty(). В каких случаях isset() и !empty() дадут
разный результат?
- isset() — проверяет переменную на существование, а также, что её значение не null.
empty() — проверяет переменную на существование и на пустоту. Если в переменной есть какое-то не пустое значение или true, то функция вернёт false(а isset вернет true), всё остальные случаи — это true; - Если в переменной записан пустой массив, пустая строка, ноль, false. !empty выдаст false, а isset - true.
- Основные операторы - if, else, foreach, while, for, switch.
- Цикл foreach используется для прохождения по всем элементам массива.
- Цикл while будет выполняться до тех пор, пока верно (истинно) выражение, переданное ему параметром.
Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла. - Цикл for
В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается и выполняются вложенные операторы. Если оно принимает значение FALSE, выполнение цикла заканчивается.
В конце каждой итерации выражение expr3 вычисляется (выполняется).
Принцип работы конструкции switch-case такой: - Оператор switch
Берется значение переменной(выражения) после ключевого слова switch;
Сравниваются значения case, если совпадают, то выполняется команды для этого case. Если не указана оператор break, то будут выполнены команды из следующих блоков case. В противном случае (есть break) будет выполнена только команды из этого case.
Если ни одно значение из набора не совпало со значением переменной(выражения), тогда выполняется блок default, если он указан.
- PDO, расшифровка, зачем используется? Плюсы и минусы
PHP Data Objects
Расширение для работы с БД
Плюсы:
Может поддерживать любую СУБД, для которой существует PDO-драйвер
Поддержка именованных параметров
Минусы:
Средствами PDO нельзя создавать любые множественные запросы(устаревшая?)
Незначительно проигрывает в производительности mysqli и mysql.
- Какие типы данных в PHP вы знаете? Какие псевдо-типы?
Четыре скалярных типа:
• 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); в начале файла.
Плюсы:
Повышает надежность (позволяет избегать багов, связанных с неправильным присваиванием и сравнением).
Повышает читабельность кода.
Самодокументированность.
- Как работает передача параметров по ссылке? Каким образом объекты передаются по ссылке?
- Ссылка — это способ обратиться к переменной с помощью другого имени.
Как правило, когда вы передаете переменную в функцию, функция получает копию значения этой переменной. Передавая ссылку на переменную функция может сослаться на эту переменную,
но что еще важнее, изменить исходную переменную.
Чтобы передать аргумент в качестве ссылки установите знак амперсанда перед именем параметра функции. - Когда мы создаём объект с помощью оператора new и присваиваем какой-то переменной, в эту переменную помещается не сам объект, а некий идентификатор объекта.
- Локальные, глобальные и статические переменные.
- Глобальные переменные- это переменные, которые доступны всей программе, включая подпрограммы (пользовательские функции).
- Локальные переменные- переменные, определенные внутри подпрограммы (пользовательской функции). Они доступны только внутри функции, в которой они определены.
- Статическая переменная существует только в локальной области видимости функции, но не теряет своего значения, когда выполнение программы выходит из этой области видимости.
- Суперглобальные переменные
Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости Суперглобальными переменными являются: • $GLOBALS • $_SERVER • $_GET • $_POST • $_FILES • $_COOKIE • $_SESSION • $_REQUEST • $_ENV
- Константы в PHP. В чем различия между define() и const?
- Константа - имя для простого значения,которое не может изменится в ходе выполнения скрипта.
- сonstдолжны быть объявлены в верхней области
Потому что они определяются при компилировании скрипта. Это значит, чтоconstнельзя использовать внутрифункций/циклов/выражений ifилиtry/catchблоков. - constвсегда регистрозависима
В то время какdefine()позволяет создать регистро-независимые константы - define можно указывать примитивные выражения, а не только скаляры, в const только c версии PHP 5.6
- constможет хранить массивы с версии PHP 5.6, а define с PHP 7.0
- Буферизация вывода в PHP.
Метод организации обмена, который подразумевает использование буфера для временного хранения данных.
Приложение получает возможность выполнить свою логику, сохраняя выходные данные.
2 способа:
php.ini и значение on в output-buffering - включает буферизацию для всех файлов
функция ob_start в скрипте, вывод которого надо буферизировать
ob_end_flush—Сбросить (отправить) буфер вывод и отключить буферизацию вывода
ob_get_contents—Возвращает содержимое буфера вывода
- Как работают cookies в PHP?
cookies - данные, которые передаются браузеру в заголовках ответа сервера для отслеживания возвращающихся посетителей.
Работает через суперглобальный массив $_COOKIE.
Устанавливаются функцией setcookie().
$_COOKIE хранит информацию о куки, доступ осуществляется по ключу (параметр name).
Фукнция должна вызываться до любого вывода данных в браузер. Но это необязательно, если использовать буферизацию.
Чтобы удалить куки, нужно ее перезаписать со всеми параметрами, которые были использованы при ее установке, но с датой в прошлом.
- Потоки в php, какие есть, зачем нужны?
Потоки (Stream) - ресурс, который ведет себя как источник непрерывной последовательности данных.
Из потока можно читать данные и записывать в него. Также возможно перемещаться в разные позиции внутри потока (fseek()).
Виды:
файл на жестком диске,
http-соединение с веб-сайтом
udp-соединение
zip-файлы
ssh-тоннель
Примеры:
file:// - доступ к локальной файловой системе
http:// - доступ к урл адресам по http
ftp:// - по ftp
php:// - доступ к различным потокам ввода-вывода
zlib:// - сжатые потоки
phar:// - php-архив
- Что такое shutdown-функции?
Функция, которая выполняется после завершения работы скрипта. Регистрируется функцией register_shutdown_function(). Функции будут выполняться по порядку регистрации.
- Что такое анонимные функции? Что такое замыкания?
Анонимные функции, позволяют создавать функции, не имеющие определенных имен. Они наиболее полезны в качестве значенийcallback-параметров
Анонимные функции реализуются с использованием классаClosure.
Замыкание – механизм, с помощью которого можно “захватить” переменные из внешнего окружения и использовать их внутри, только для анонимных функций.
Замыкания полезны в тех ситуациях, когда некоторая часть логики должна выполняться в ограниченном контексте, но при этом должна сохранить возможность взаимодействия с окружающей средой, внешней по отношению к этому контексту.
Замыкание позволяет не таскать за собой гору переменных.