PHP Flashcards
Что такое переменная, функция?
Переменная - ячейка памяти, в которой содержится информация
Функция - именнованный кусок кода
Какие различия между isset() и empty(). В каких случаях isset() и !empty() дадут
разный результат?
…
Основные операторы - if, else, foreach, while, for, switch.
…
PDO, расшифровка, зачем используется? Плюсы и минусы
PHP DATA OBJECT
+ удобно переходить между базами данных
+ отменяет необходимость знать синтаксис разных БД
- программисты могут не знать синтаксис запросов
Какие типы данных в PHP вы знаете? Какие псевдо-типы?
Типы 1 integer 2 string 3 float 4 array 5 object 6 bool 7 null 8 resource - это специальная переменная, содержащая ссылку на внешний ресурс. 9 iterable - псевдотип, введенный в PHP 7.1. Он принимает любой массив (array) или объект, реализующий интерфейс Traversable. Оба этих типа итерируются с помощью foreach
Псевдотипы: mixed number array|object Callback-функции могут быть отмечены в коде подсказкой типа callable, появившейся в версии PHP 5.4. В данной документации для этих же целей используется callback.
Что такое строгая типизация, её плюсы?
Режим строгой типизации применяется к конкретному файлу. Для включения режима используют директиву declare в начале файла.
+ программист точно понимает, что он делает и как это работает, что позволяетизбедать багов, связанных с неправильным присваиванием и сравнением.
Как работает передача параметров по ссылке? Каким образом объекты
передаются по ссылке?
Ссылка - указатель на значением, хранящееся в другой переменной.
3 вида ссылок:
Жесткие ссылки - используют &. Не может ссылаться на несуществующий объект, если такая попытка делается, то объект создается. При этом изменение одной переменной ведет за собой измение другой.
Unset ссылки лишь разрывает связь, но не удаляет переменную.
Символические ссылки почти не используются.
$a = 1;
$b = ‘a’;
echo $$b; // выведет значение переменной а, b - строковая переменная, хранящая имя другой переменной
Ссылка на объект
$a = newObject();
$a->num = 23;
$b = $a;
$b->num = 25;
echo “{$a->num}, {$b->num}”;
// в обоих случая выведется 25, т.к. переменная хранит не сам объект, а ссылку на него (например, пальто в гардеробе и два одинаковых номерка).
Локальные, глобальные и статические переменные.
Локальные - внутри функции, разрушаются после выполнения функции.
Статические - внутри функции, но не разрушаются при выводе из нее.
Глобальные - доступные во всех функциях. Объявляются либо до функций, либо с использованием слова global.
Суперглобальные переменные.
Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости $GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV
Константы в PHP. В чем различия между define() и const?
Константа - это идентификатор (имя) для простого значения. Как следует из названия, их значение не может изменится в ходе выполнения скрипта.
Имена констант по умолчанию чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.
Делятся на предопределенные в языке и определяемые в программе.
Объявляются через
const - дб объявлены в самой верхней области видимости, регистрозависимы, хранят массивы с 5.6.
define() - в любом месте программы, м сделать регистронезависимыми, массивы с версии 7.
Буферизация вывода в PHP.
Метод организации обмена, который подразумевает использование буфера для верменного хранения данных.
Приложение получает возможность выполнить свою логику, созраняя выходные данные.
2 способа:
php.ini и значение on в output-buffering - включает буферизацию для всех файлов
функция ob_start в скрипте, вывод которого надо буферизировать
Как работают cookies в PHP?
cookies - небольшой кусочек данных, кооторый передается браузеру в заголовках ответа сервера.
Работает через суперглобальный массив $_COOKIE.
Устанавливаются функцией setcookie(). Она принимает несколько параметров (7), но обязательным является только 1 - name.
$_COOKIE хранит информацию о куки, доступ осуществляется по ключу (параметр name).
Фукнция должна вызываться до любого вывода данных в браузер. Но это необязательно, если использовать буферизацию.
Чтобы удалить куки, нужно ее перезаписать со всеми параметрами, которые были использованы при ее установке, но с датой в прошлом.
Потоки в php, какие есть, зачем нужны?
Потоки (Stream) - ресурс, который ведет себя как источник непрерывной последовательности данных.
Из потока можно читать данные и записывать в него. Также возможно перемещаться в разные позиции внутри потока (fseek()).
Виды:
файл на жестком диске,
http-соединение с веб-сайтом
udp-соединение
zip-файлы
ssh-тоннель
Примеры:
file:// - доступ к локальной файловой системе
http:// - доступ к урл адресам по http
ftp:// - по ftp
php:// - доступ к различным потокам ввода-вывода
zlib:// - сжатые потоки
phar:// - php-архив
Что такое shutdown-функции?
Функция, которая выполняется после завершения работы скрипта. Регистрируется функцией register_shutdown_function(). Фукнции буту выполняться по порядку регистрации.
Что такое анонимные функции? Что такое замыкания?
Анонимные функции, также известные как замыкания (closures), позволяют создавать функции, не имеющие определенных имен. Они наиболее полезны в качестве значений callback-параметров, но также могут иметь и множество других применений.
$greet = function($name)
{
printf(“Привет, %s\r\n”, $name);
};