uk
Feedback
PHP | Вопросы собесов

PHP | Вопросы собесов

Відкрити в Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv

Показати більше
2 347
Підписники
+124 години
-87 днів
-2430 день
Архів дописів
🤔 В чем преимущества асинхронного шифрования? Асинхронное шифрование (асимметричная криптография) использует пару ключей: Открытый (public key) – используется для шифрования данных. Закрытый (private key) – используется для расшифровки данных. Этот метод отличается от симметричного шифрования, где один и тот же ключ используется и для шифрования, и для дешифровки. 🟠Безопасный обмен ключами - В симметричном шифровании нужно передать секретный ключ, что создаёт риск его перехвата. - В асимметричном шифровании передаётся только открытый ключ, а закрытый ключ никогда не покидает владельца. 🟠Цифровая подпись – гарантия подлинности данных - Можно подписывать данные закрытым ключом, а затем любой человек может проверить их подлинность с помощью открытого ключа.
$data = "Важное сообщение";
$privateKey = openssl_pkey_get_private(file_get_contents("private.pem"));
$publicKey = openssl_pkey_get_public(file_get_contents("public.pem"));

// Создаём подпись
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);

// Проверяем подпись
$valid = openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256);

echo $valid ? "Подпись верна" : "Подпись недействительна";
🟠Возможность шифрования без предварительного контакта - В симметричном шифровании обе стороны должны сначала договориться о ключе. - В асимметричном шифровании можно просто использовать открытый ключ получателя без предварительного обмена секретами. 🟠Используется в SSL/TLS для безопасного соединения - Когда вы заходите на сайт с https://, браузер использует асимметричное шифрование для установки защищённого соединения с сервером. - После этого браузер и сервер могут использовать симметричное шифрование (быстрее), но начальный обмен ключами происходит безопасно. 🚩Как это работает? 1. Браузер запрашивает у сервера его открытый ключ. 2. Шифрует случайный симметричный ключ и отправляет его серверу. 3. Сервер расшифровывает его закрытым ключом и использует для дальнейшей защиты соединения. Ставь 👍 и забирай 📚 Базу знаний

Конференция про построение архитектуры сетевого доверия UserGate Open Conf 2026 ⚡Главная ежегодная конференция UserGatе, которая соберёт более 3000 руководителей и экспертов в области сетевых технологий и информационной безопасности. Обсудим актуальные проблемы в сфере ИБ ✅Поделимся: - Новейшими продуктовыми разработками и сервисами UserGate; - Актуальными практиками; - Реальными кейсами. 👍Регистрируйтесь на конференцию UserGate Зарегистрироваться #реклама openconf.usergate.com О рекламодателе

🤔 Что такое Cookies? Это небольшие файлы, которые хранят данные на стороне клиента (в браузере). Они используются для: 1. Идентификации пользователя и управления сессиями. 2. Сохранения предпочтений пользователя. 3. Отслеживания активности пользователя на сайте. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Аукцион выделенных серверов! Серверы дешевеют у вас на глазах! Новые лоты каждый день, скидки до -35% на весь срок аренды. Успейте арендовать, пока лот не ушел другому! Получить предложение #реклама 16+ selectel.ru О рекламодателе

🤔 Слово "global" для чего используется? Ключевое слово global используется в PHP для доступа к глобальным переменным внутри функций. 🚩Как работает `global`? Доступ к глобальной переменной внутри функции
$counter = 10; // Глобальная переменная

function increment() {
    global $counter; // Доступ к глобальной переменной
    $counter++;
}

increment();
echo $counter; // ✅ 11
Использование нескольких глобальных переменных
$a = 5;
$b = 10;

function sum() {
    global $a, $b;
    $b = $a + $b; // Меняем глобальную переменную $b
}

sum();
echo $b; // ✅ 15
🟠Альтернативный способ – `$GLOBALS` Можно использовать суперглобальный массив $GLOBALS, который хранит все глобальные переменные.
$x = 3;
$y = 7;

function multiply() {
    $GLOBALS['y'] = $GLOBALS['x'] * $GLOBALS['y'];
}

multiply();
echo $y; // ✅ 21
🚩Когда `global` – плохая идея? Глобальные переменные усложняют отладку (их можно случайно изменить). Функции становятся зависимыми от внешних данных (плохо для тестирования). Лучше передавать переменные через аргументы функции. Альтернативный способ (без global)
function increment($counter) {
    return $counter + 1;
}

$counter = 10;
$counter = increment($counter);
echo $counter; // ✅ 11
Ставь 👍 и забирай 📚 Базу знаний

Звучит как идеальный старт карьеры в ИТ 6 месяцев работы в связке с топ-менеджером Т-Банка и участие в масштабных проектах компании — все это в программе развития «Мини-CEO». Здесь есть возможность влиять на продукты и получать фидбек от лидеров направлений. А еще построить индивидуальный трек развития карьеры и работать бок о бок с командой в офисе T-Space. Программа подойдет студентам и джуниор-специалистам, которые сильны в математике, аналитике и программировании. Успей подать заявку до 30 марта. Подать заявку #реклама 16+ t-miniceo.ru О рекламодателе

🤔 Что известно о Unit-тестах? Это тесты, проверяющие отдельные единицы кода (обычно функции, методы или классы) в изоляции от внешних зависимостей. Особенности: - Быстрые, запускаются локально. - Должны быть предсказуемыми и детерминированными. - Не используют базу данных, сеть или файловую систему (для этого есть интеграционные и e2e-тесты). - Помогают отлавливать баги на раннем этапе и облегчают рефакторинг. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какое отличие у протоколов tcp и udp? Это два основных транспортных протокола в интернете. Они имеют разные характеристики и используются для различных целей. 🚩Основные отличия 🟠Надежность TCP: Обеспечивает надежную передачу данных. Он использует механизмы установления соединения, подтверждение получения (ACK), контроль потерь пакетов, повторную передачу потерянных пакетов и контроль потока. Это гарантирует, что данные будут доставлены корректно и в правильном порядке. UDP: Не обеспечивает надежную передачу данных. Нет подтверждений получения, нет повторной передачи потерянных пакетов и нет контроля потока. Это делает передачу менее надежной, но более быстрой и с меньшими накладными расходами. 🟠Установление соединения TCP: Перед началом передачи данных устанавливается соединение с помощью процедуры "трехстороннего рукопожатия" (three-way handshake). Это означает, что обе стороны сначала обмениваются сигналами SYN и ACK для установления соединения. UDP: Не требует установления соединения. Пакеты (датаграммы) просто отправляются к получателю без предварительного установления соединения. 🟠Порядок доставки TCP: Обеспечивает доставку данных в правильном порядке. Если пакеты приходят в неправильном порядке, TCP собирает их в правильном порядке перед передачей приложению. UDP: Не гарантирует порядок доставки. Пакеты могут приходить в произвольном порядке, и приложение должно обрабатывать их соответствующим образом, если это необходимо. 🟠Пропускная способность и задержки TCP: Из-за механизмов контроля потока и подтверждений имеет большие накладные расходы и, следовательно, может быть медленнее. Это особенно заметно на сетях с высокой задержкой или потерей пакетов. UDP: Из-за отсутствия контроля потока и подтверждений имеет меньшие накладные расходы, что может привести к меньшим задержкам и большей пропускной способности. Подходит для приложений, где важна скорость, а не надежность. 🟠Применение TCP: Используется для приложений, где важна надежность и порядок передачи данных, таких как веб-браузеры (HTTP/HTTPS), электронная почта (SMTP, IMAP, POP3), файловые передачи (FTP), удаленный доступ (SSH). UDP: Используется для приложений, где важна скорость и где потеря некоторых пакетов не критична, таких как потоковое видео и аудио (VoIP, IPTV), онлайн-игры, службы доменных имен (DNS). 🚩Примеры использования TCP
HTTP/HTTPS: Веб-серфинг
SMTP: Отправка электронной почты
IMAP/POP3: Получение электронной почты
FTP: Передача файлов
SSH: Безопасный удаленный доступ
UDP
DNS: Запросы доменных имен
VoIP: Передача голоса через IP
IPTV: Потоковое видео
Онлайн-игры: Быстрая передача данных игровой логики
NTP: Синхронизация времени
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как расшифровывается REST? REST (Representational State Transfer) — это архитектурный стиль взаимодействия систем через HTTP. Он основан на представлении ресурсов как URL и использовании стандартных HTTP-методов (GET, POST, PUT, DELETE) для работы с этими ресурсами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Зачем нужны паттерны проектирования? Это повторяемые решения типичных задач. Они помогают разработчикам создавать программы, которые легко поддерживать, расширять и модифицировать. Паттерны проектирования упрощают процесс разработки, обеспечивая проверенные способы решения распространенных проблем, что экономит время и силы разработчиков. 🚩Зачем они нужны 🟠Повторяемость и стандартность Паттерны обеспечивают повторяемость решений для часто возникающих задач, что снижает вероятность ошибок и улучшает читабельность кода. 🟠Улучшение коммуникации Использование общепринятых паттернов облегчает коммуникацию между разработчиками. Когда все понимают, что подразумевается под, например, «одиночкой» (singleton), это упрощает обсуждение архитектуры системы. 🟠Повышение качества кода Паттерны проектирования способствуют созданию более структурированного, гибкого и поддерживаемого кода. 🟠Экономия времени и ресурсов Паттерны позволяют не изобретать велосипед, а использовать проверенные решения, что ускоряет процесс разработки. 🚩Как они используются Паттерны проектирования делятся на несколько категорий, каждая из которых решает определенный тип задач: 🟠Порождающие паттерны Эти паттерны касаются создания объектов. Примеры: Singleton, Factory, Builder. 🟠Структурные паттерны Эти паттерны касаются построения структуры больших объектов. Примеры: Adapter, Composite, Decorator. 🟠Поведенческие паттерны Эти паттерны касаются взаимодействия и распределения обязанностей между объектами. Примеры: Observer, Strategy, Command.
class Singleton {
    private static $instance;

    private function __construct() {
        // Закрытый конструктор предотвращает создание объекта через new
    }

    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function someBusinessLogic() {
        // Некоторая бизнес-логика
    }
}

// Использование Singleton
$singleton = Singleton::getInstance();
$singleton->someBusinessLogic();
Ставь 👍 и забирай 📚 Базу знаний

🤔 Слово "global" для чего используется? Слово global позволяет получить доступ к переменной, определённой за пределами текущей функции. Используется, чтобы модифицировать глобальные переменные внутри функций. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Сегодня последний день, когда можно приобрести пожизненный PRO тариф easyoffer Акция до 20 февраля 00:00 Покупаешь сейчас оди
Сегодня последний день, когда можно приобрести пожизненный PRO тариф easyoffer Акция до 20 февраля 00:00 Покупаешь сейчас один раз — пользуешься всю жизнь без лимита, включая все будущие функции. 👉 Смотри подробности тарифа и покупай на https://easyoffer.ru/

🤔 Что знаешь про нормальные формы в БД? Нормальные формы (Normal Forms, NF) в базах данных — это правила, которые помогают организовать данные так, чтобы избежать избыточности и аномалий при обновлении, удалении и вставке. 🚩Основные нормальные формы 🟠Первая нормальная форма (1NF) убирает повторяющиеся группы и делает все столбцы атомарными. Что нужно сделать? Каждое поле должно содержать только одно значение. В таблице нет повторяющихся строк. 🟠Вторая нормальная форма (2NF) убирает зависимости от части составного ключа. Что нужно сделать? Данные, которые зависят не от всего первичного ключа, вынести в отдельные таблицы. Должна быть уже в 1NF. 🟠Третья нормальная форма (3NF) убирает транзитивные зависимости. Что нужно сделать? Данные должны зависеть только от первичного ключа и не зависеть от других неключевых полей. Должна быть уже в 2NF. 🚩Дополнительные нормальные формы 🟠Бойса-Кодда (BCNF) более строгая версия 3NF, исключает случаи, когда таблица имеет несколько потенциальных ключей, но один из них влияет на другой. 🟠Четвёртая нормальная форма (4NF) убирает многозначные зависимости (например, если студент изучает несколько предметов, но предметы никак не связаны друг с другом). 🟠Пятая нормальная форма (5NF) разбиение таблицы на подтаблицы для минимизации избыточности данных. Ставь 👍 и забирай 📚 Базу знаний

Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполни
Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполнили — получили свои деньги. Деньги вы получаете в зависимости от сложности задания. Например: За задание могут платить 500-10.000 рублей. В зависимости от сложности. 500 рублей — это около 5-30 минут. 10 000 руб. это 5-6 часов. Работа может быть разной: Оживить фото, создать видео, реставрировать старое фото и т.д. 💰 В среднем новичок получает до 150.000 руб в месяц. А опытный может и 300-500т. Мы обучим вас сами: — 3 дня уроков по 30 минут — Домашки с проверкой ⚡ Набор заканчивается завтра. Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ neuromachina.ru О рекламодателе

🤔 Что такое абстрактный класс? Абстрактный класс — это класс, который не может быть создан как объект и служит для того, чтобы задавать общие свойства и методы для классов-наследников. Он может содержать как абстрактные, так и конкретные методы с реализацией. Наследники обязаны реализовать все абстрактные методы родительского класса. Абстрактные классы полезны, когда требуется частичная реализация с обязательной реализацией некоторых методов в дочерних классах. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Завтра конец акции на возможность приобрести PRO тариф по цене одного года Доступный функционал включает базы вопросов с собе
Завтра конец акции на возможность приобрести PRO тариф по цене одного года Доступный функционал включает базы вопросов с собеседований, задач для live-coding, реальных интервью и тестовых заданий от топ-компаний, а также аналитику требований для резюме и тренажеры с режимом симуляции собеседования под конкретную компанию. Акция до 20 февраля (включительно) на PRO-тариф. Покупаешь сейчас один раз — пользуешься всю жизнь без лимита, включая все будущие функции. 👉 Смотри подробности тарифа и покупай на https://easyoffer.ru/

🤔 Что такое динамические переменные? Это переменные, имена которых определяются во время выполнения программы. Это позволяет создавать, модифицировать или обращаться к переменным динамически, основываясь на входных данных или условиях выполнения программы. Такой подход может быть полезен в сценариях, где структура данных неизвестна на момент написания кода или когда нужно генерировать переменные на лету в зависимости от контекста выполнения. 🚩PHP Имена переменных могут быть динамически сформированы с использованием переменных переменных
$name = "variable";
$$name = "Hello, World!";

echo $variable; // Выведет "Hello, World!"
Плюсы и минусы ➕Гибкость позволяет создавать более адаптивные и динамические программы, которые могут работать с данными, структура которых заранее неизвестна. ➕Удобство упрощает работу с большим количеством похожих переменных или свойств объекта без необходимости явного объявления каждой переменной. ➖Читаемость кода использование динамических переменных может сделать код менее понятным и труднее для отладки, поскольку не всегда ясно, какие переменные создаются и используются. ➖Управление памятью динамическое создание большого количества переменных может привести к неэффективному использованию памяти и снижению производительности. Ставь 👍 и забирай 📚 Базу знаний

IT-магистратура ИТМО, МИФИ в партнёрстве с Яндексом Освойте высокооплачиваемую IT-профессию. Актуальные программы ИТМО и МФТИ
IT-магистратура ИТМО, МИФИ в партнёрстве с Яндексом Освойте высокооплачиваемую IT-профессию. Актуальные программы ИТМО и МФТИ 2026 года, диплом гособразца, много практики от Яндекса. Гибкий график, обучение полностью онлайн, господдержка оплаты, отсрочка от армии Узнать больше #реклама 16+ practicum.yandex.ru О рекламодателе

🤔 Что такое поведение copy-on-write? Это механизм оптимизации памяти, при котором копия объекта создаётся только в случае изменения исходного объекта. До изменений объекты разделяют один и тот же адрес в памяти. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как расшифровывается Rest? REST расшифровывается как REpresentational State Transfer (Представленческая передача состояния). Это архитектурный стиль для создания сетевых приложений, который определяет набор ограничений и принципов для проектирования и взаимодействия с веб-службами. 🚩Основные принципы 🟠Клиент-серверная архитектура (Client-Server) Клиент и сервер разделены. Клиенты запрашивают ресурсы, а серверы предоставляют их. Это разделение позволяет независимое развитие клиента и сервера. 🟠Отсутствие состояния (Stateless) Каждое взаимодействие между клиентом и сервером не зависит от предыдущих взаимодействий. Вся необходимая информация для выполнения запроса должна быть включена в сам запрос. 🟠Кешируемость (Cacheable) Ответы могут быть кешируемыми. Это улучшает производительность, снижая необходимость повторных обращений к серверу для получения одних и тех же данных. 🟠Единообразный интерфейс (Uniform Interface) Определяет единообразный способ взаимодействия с ресурсами, независимо от конкретного клиента или сервера. Включает четыре подпринципа: Идентификация ресурсов: Каждый ресурс имеет уникальный идентификатор (обычно URL). Манипуляция ресурсами через представления: Клиенты взаимодействуют с ресурсами, используя их представления (например, JSON, XML). Самоописываемые сообщения: Сообщения содержат всю необходимую информацию для обработки запроса или ответа. Гипермедиа как движок приложения (HATEOAS): Клиенты получают информацию о доступных действиях через гиперссылки в ответах сервера. 🟠Слои (Layered System) Архитектура может быть многослойной, где каждый слой имеет свои обязанности и скрывает сложность соседних слоев. 🟠Код по требованию (Code on Demand, необязательный) Сервер может передавать исполняемый код клиенту для выполнения. Например, JavaScript для выполнения на стороне клиента. 🚩Пример REST GET: Получить ресурс. POST: Создать новый ресурс. PUT: Обновить существующий ресурс. DELETE: Удалить ресурс. 🚩Пример API 1⃣Получить список пользователей
GET /users
Ответ
      [
       {"id": 1, "name": "Alice"},
       {"id": 2, "name": "Bob"}
   ]
2⃣Получить пользователя по ID
GET /users/1
Ответ
      {"id": 1, "name": "Alice"}
   
3️⃣Создать нового пользователя
POST /users
Тело запроса
{"name": "Charlie"}
Ответ
{"id": 3, "name": "Charlie"}
4⃣Обновить информацию о пользователе
PUT /users/1   
Тело запроса
{"name": "Alice Smith"}
5⃣Удалить пользователя
DELETE /users/1
Ставь 👍 и забирай 📚 Базу знаний