Найти в Дзене
Lyakhov Eugene

Теоретические задачи php

Знание есть, но стресс мешает?
Бесплатное сообщество для прокачки карьеры в IT Подпишись на https://t.me/IT_Interview_Partner_Bot
Подпишись на https://t.me/LyakhovEugene

  1. Что такое PHP?
    PHP (Hypertext Preprocessor) — это скриптовый язык программирования общего назначения, специально разработанный для веб-разработки. Код PHP выполняется на стороне сервера, генерируя HTML-контент, который отправляется клиенту.
  2. Как объявить переменную в PHP?
    Переменная в PHP объявляется с помощью символа $, за которым следует имя переменной. Например: $name = "John";. PHP — язык с динамической типизацией, поэтому тип переменной определяется автоматически.
  3. Какие основные типы данных существуют в PHP?
    Скалярные: int, float, string, bool. Составные: array, object, callable, iterable. Специальные: resource, NULL. Начиная с PHP 8.0 добавлены mixed, never, false как самостоятельные типы.
  4. В чем разница между одинарными и двойными кавычками?
    В двойных кавычках интерпретируются переменные и управляющие последовательности (\n, \t и т.д.), а в одинарных — выводится практически всё как есть. Двойные кавычки выполняются медленнее из-за необходимости парсинга.
  5. Какие операторы сравнения с приведением типов и без приведения вы знаете?
    == — сравнивает значения с приведением типов; === — сравнивает значения и типы без приведения (строгое сравнение). Аналогично != и !==.
  6. Чем отличается include от require?
    Оба включают файл, но при ошибке require вызывает фатальную ошибку и останавливает выполнение скрипта, а include только выдаёт предупреждение и продолжает работу. include_once и require_once проверяют, был ли файл уже подключён.
  7. Что такое суперглобальные массивы? Приведите примеры.
    Это предопределённые массивы, доступные в любой области видимости. Примеры: $_GET, $_POST, $_SESSION, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST.
  8. Как работают сессии в PHP?
    Сессии позволяют хранить данные о пользователе между запросами. Сессия стартует функцией session_start(), данные сохраняются в суперглобальном массиве $_SESSION. PHP генерирует уникальный идентификатор сессии и передаёт его клиенту обычно через cookie.
  9. Чем отличаются куки (cookies) от сессий?
    Куки хранятся на стороне клиента и могут быть отключены пользователем, данные доступны в JavaScript. Сессии хранятся на сервере, клиенту передаётся только идентификатор сессии. Сессии безопаснее для конфиденциальных данных.
  10. Как обработать данные из формы, отправленной методом POST?
    Доступ к данным осуществляется через суперглобальный массив $_POST. Например: $name = $_POST['name'];. Для GET — $_GET. Важно фильтровать и валидировать входные данные.
  11. Что такое PDO? В чем его преимущества?
    PDO (PHP Data Objects) — расширение для работы с базами данных, предоставляющее унифицированный интерфейс. Преимущества: поддержка различных СУБД, использование подготовленных запросов для защиты от SQL-инъекций, объектно-ориентированный подход.
  12. Как предотвратить SQL-инъекции в PHP?
    Использовать подготовленные запросы (prepared statements) через PDO или MySQLi. Также можно экранировать строки, но надёжнее — параметризованные запросы.
  13. Что такое autoloading в PHP?
    Механизм автоматической загрузки классов без явного подключения файлов с помощью include/require. Реализуется через функцию spl_autoload_register() или директивы в composer.json. Современные проекты используют Composer с PSR-4.
  14. Что такое пространства имён (namespaces)?
    Пространства имён позволяют группировать классы, интерфейсы, функции и константы, избегая конфликтов имён. Объявляются директивой namespace. Доступ к элементу из другого пространства через use или указание полного пути.
  15. Перечислите основные магические методы PHP.
    __construct(), __destruct(), __get(), __set(), __call(), __callStatic(), __toString(), __invoke(), __clone(), __sleep(), __wakeup() и др. Эти методы автоматически вызываются при определённых действиях с объектами.
  16. Что такое трейты (traits)?
    Трейты — механизм повторного использования кода в PHP для горизонтального наследования. Позволяют включать методы в классы, избегая ограничений одиночного наследования. Объявляются ключевым словом trait, подключаются use.
  17. Как работают интерфейсы и абстрактные классы?
    Интерфейсы определяют контракт (сигнатуры методов) без реализации. Класс, реализующий интерфейс, обязан определить все его методы. Абстрактные классы могут содержать как абстрактные, так и реализованные методы; не могут быть инстанциированы напрямую.
  18. Что такое замыкание (closure) и анонимная функция?
    Анонимная функция — функция без имени, может быть присвоена переменной или передана как аргумент. Замыкание — анонимная функция, которая может захватывать переменные из родительской области видимости с помощью use.
  19. Как работать с файлами в PHP?
    Основные функции: fopen(), fclose(), fread(), fwrite(), file_get_contents(), file_put_contents(). Для работы с файловой системой: file_exists(), is_file(), unlink(), mkdir() и др.
  20. Какие способы обработки ошибок существуют в PHP?
    Использование try-catch для исключений.
    Функции error_reporting(), set_error_handler() для пользовательской обработки ошибок.
    Директива display_errors на этапе разработки.
    Логирование ошибок с error_log().
  21. Что такое Composer?
    Composer — менеджер зависимостей для PHP. Позволяет подключать сторонние библиотеки, управлять их версиями и автозагрузкой через файл composer.json. Создаёт файл composer.lock для фиксации версий.
  22. Что такое итераторы и генераторы в PHP?
    Итераторы — объекты, реализующие интерфейс Iterator, позволяющие перебирать коллекции. Генераторы — упрощённый способ создания итераторов с помощью yield, экономят память при работе с большими объёмами данных.
  23. Какие нововведения появились в PHP 8?
    JIT-компиляция
    Атрибуты (аннотации)
    Named arguments (именованные аргументы)
    Match-выражение
    Оператор Nullsafe (?->)
    Тип mixed, static, false
    Улучшенная работа со строками (str_contains, str_starts_with, str_ends_with) и другие.
  24. Что такое XSS и как защититься от неё в PHP?
    XSS (межсайтовый скриптинг) — внедрение вредоносного скрипта в веб-страницу. Защита: экранирование вывода с помощью htmlspecialchars(), использование Content Security Policy, фильтрация входных данных.
  25. Как установить и получить куки в PHP?
    Установка: setcookie('name', 'value', time()+3600, '/');. Получение: $_COOKIE['name']. Важно: куки отправляются в заголовках, поэтому вызов setcookie() должен быть до любого вывода HTML.

Страховка на собеседовании

Знание есть, но стресс мешает?
Бесплатное сообщество для прокачки карьеры в IT

Подпишись на https://t.me/IT_Interview_Partner_Bot

Подпишись на
https://t.me/LyakhovEugene