PHP Flashcards

1
Q
  1. Что такое переменная, функция?
A
  • Переменная - именованное хранилище данных(ячейка памяти)

- Функция— это блок кода, который может быть именован ивызван повторно

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Какие различия между isset() и empty(). В каких случаях isset() и !empty() дадут
    разный результат?
A
  • isset() — проверяет переменную на существование, а также, что её значение не null.
    empty() — проверяет переменную на существование и на пустоту. Если в переменной есть какое-то не пустое значение или true, то функция вернёт false(а isset вернет true), всё остальные случаи — это true;
  • Если в переменной записан пустой массив, пустая строка, ноль, false. !empty выдаст false, а isset - true.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Основные операторы - if, else, foreach, while, for, switch.
A
  • Цикл foreach используется для прохождения по всем элементам массива.
  • Цикл while будет выполняться до тех пор, пока верно (истинно) выражение, переданное ему параметром.
    Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла.
  • Цикл for
    В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается и выполняются вложенные операторы. Если оно принимает значение FALSE, выполнение цикла заканчивается.
    В конце каждой итерации выражение expr3 вычисляется (выполняется).
    Принцип работы конструкции switch-case такой:
  • Оператор switch
    Берется значение переменной(выражения) после ключевого слова switch;
    Сравниваются значения case, если совпадают, то выполняется команды для этого case. Если не указана оператор break, то будут выполнены команды из следующих блоков case. В противном случае (есть break) будет выполнена только команды из этого case.
    Если ни одно значение из набора не совпало со значением переменной(выражения), тогда выполняется блок default, если он указан.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. PDO, расшифровка, зачем используется? Плюсы и минусы
A

PHP Data Objects
Расширение для работы с БД
Плюсы:
Может поддерживать любую СУБД, для которой существует PDO-драйвер
Поддержка именованных параметров
Минусы:
Средствами PDO нельзя создавать любые множественные запросы(устаревшая?)
Незначительно проигрывает в производительности mysqli и mysql.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Какие типы данных в PHP вы знаете? Какие псевдо-типы?
A

Четыре скалярных типа:
• 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 (обратного вызова)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Что такое строгая типизация, её плюсы?
A

Режим строгой типизации применяется к конкретному файлу. Для включения режима используют директиву declare(strict_types=1); в начале файла.
Плюсы:
Повышает надежность (позволяет избегать багов, связанных с неправильным присваиванием и сравнением).
Повышает читабельность кода.
Самодокументированность.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Как работает передача параметров по ссылке? Каким образом объекты передаются по ссылке?
A
  • Ссылка — это способ обратиться к переменной с помощью другого имени.
    Как правило, когда вы передаете переменную в функцию, функция получает копию значения этой переменной. Передавая ссылку на переменную функция может сослаться на эту переменную,
    но что еще важнее, изменить исходную переменную.
    Чтобы передать аргумент в качестве ссылки установите знак амперсанда перед именем параметра функции.
  • Когда мы создаём объект с помощью оператора new и присваиваем какой-то переменной, в эту переменную помещается не сам объект, а некий идентификатор объекта.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Локальные, глобальные и статические переменные.
A
  • Глобальные переменные- это переменные, которые доступны всей программе, включая подпрограммы (пользовательские функции).
  • Локальные переменные- переменные, определенные внутри подпрограммы (пользовательской функции). Они доступны только внутри функции, в которой они определены.
  • Статическая переменная существует только в локальной области видимости функции, но не теряет своего значения, когда выполнение программы выходит из этой области видимости.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Суперглобальные переменные
A
Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости
Суперглобальными переменными являются:
    • $GLOBALS
    • $_SERVER
    • $_GET
    • $_POST
    • $_FILES
    • $_COOKIE
    • $_SESSION
    • $_REQUEST
    • $_ENV
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Константы в PHP. В чем различия между define() и const?
A
  • Константа - имя для простого значения,которое не может изменится в ходе выполнения скрипта.
  • сonstдолжны быть объявлены в верхней области
    Потому что они определяются при компилировании скрипта. Это значит, чтоconstнельзя использовать внутрифункций/циклов/выражений ifилиtry/catchблоков.
  • constвсегда регистрозависима
    В то время какdefine()позволяет создать регистро-независимые константы
  • define можно указывать примитивные выражения, а не только скаляры, в const только версии PHP 5.6
  • onstможет хранить массивы с версии PHP 5.6, а define с PHP 7.0
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Буферизация вывода в PHP.
A

Метод организации обмена, который подразумевает использование буфера для временного хранения данных.
Приложение получает возможность выполнить свою логику, сохраняя выходные данные.
2 способа:
php.ini и значение on в output-buffering - включает буферизацию для всех файлов
функция ob_start в скрипте, вывод которого надо буферизировать
ob_end_flush—Сбросить (отправить) буфер вывод и отключить буферизацию вывода
ob_get_contents—Возвращает содержимое буфера вывода

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Как работают cookies в PHP?
A

cookies - данные, которые передаются браузеру в заголовках ответа сервера для отслеживания возвращающихся посетителей.
Работает через суперглобальный массив $_COOKIE.
Устанавливаются функцией setcookie().
$_COOKIE хранит информацию о куки, доступ осуществляется по ключу (параметр name).
Фукнция должна вызываться до любого вывода данных в браузер. Но это необязательно, если использовать буферизацию.
Чтобы удалить куки, нужно ее перезаписать со всеми параметрами, которые были использованы при ее установке, но с датой в прошлом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Что такое shutdown-функции?
A

Функция, которая выполняется после завершения работы скрипта. Регистрируется функцией register_shutdown_function(). Фукнции буту выполняться по порядку регистрации.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Что такое анонимные функции? Что такое замыкания?

A

Анонимные функции, позволяют создавать функции, не имеющие определенных имен. Они наиболее полезны в качестве значенийcallback-параметров
Анонимные функции реализуются с использованием классаClosure.

Замыкание – механизм, с помощью которого можно “захватить” переменные из внешнего окружения и использовать их внутри, только для анонимных функций.
Замыкания полезны в тех ситуациях, когда некоторая часть логики должна выполняться в ограниченном контексте, но при этом должна сохранить возможность взаимодействия с окружающей средой, внешней по отношению к этому контексту.
Замыкание позволяет не таскать за собой гору переменных.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Что такое исключения, как ими пользоваться?
A

Исключения - способ обработки ошибок, позволяют сообщить о неожиданной ситуации в программе.
Исключение - объект класса Exception или наследников.
В php это мб любой класс, реализующий интерфейс Throwable. Предполагается, что для каждого типа ошибки создаются свои классы исключений, что позволяет потом их различать.
Исключение можно сгенерировать через trow new Exception.
try catch
у каждого try дб хотя бы 1 catch или finally
В php7 и выше catch может принимать несколько типов исключений (через |).
finally будет выполняться после всех try и catch, независимо от того, было ли брошено исключение.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly