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

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

Відкрити в Telegram

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

Показати більше
2 342
Підписники
-224 години
-67 днів
-2530 день
Архів дописів
Repost from easyoffer
Новая фича на easyoffer – Автоотлики Вы автоматически откликаетесь на подходящие вам вакансии. Попробуйте её бесплатно и начн
Новая фича на easyoffer Автоотлики Вы автоматически откликаетесь на подходящие вам вакансии. Попробуйте её бесплатно и начните получать больше предложений о работе. 🚀 Запуск занимаем всего 3 минуты, а экономит очень много времени 🛡 Это безопасно: easyoffer официально одобрен HeadHunter и прошел его модерацию. 🥷🏻 Автоотклик незаметен для рекртера. Автоотклик ничем не отличается от обычного отклика, который вы делаете вручную Рекрутеры давно используют автоматизацию для поиска кандидатов. Так почему вы должны откликаться вручную? 💡Совет – Добавьте шаблон сопроводительного письма, чтобы откликаться на большее количество вакансий (на некоторые вакансии нельзя откликнуться без сопроводительного) Попробовать бесплатно → https://easyoffer.ru/autoapply

🤔 Что такое списочный тип? Это структура данных, представляющая упорядоченный набор элементов, где каждый элемент связан с предыдущим и следующим. 1. Пример — связанный список (linked list), где каждый узел содержит значение и ссылку на следующий узел. 2. Такие типы обеспечивают удобное добавление и удаление элементов, но имеют медленный доступ по индексу (O(n)). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое namespaces? Это механизм, позволяющий организовать код в логические группы и избежать конфликтов имен, особенно в больших проектах или при использовании сторонних библиотек. 🚩Зачем они нужны? 🟠Избежание конфликтов имен В больших проектах могут быть сотни классов, функций и констант. Пространства имен помогают избежать ситуаций, когда разные части кода используют одинаковые имена. 🟠Упрощение организации кода Они позволяют группировать связанные классы, интерфейсы, функции и константы, что делает код более читаемым и поддерживаемым. 🟠Упрощение автозагрузки Пространства имен облегчают использование автозагрузчиков, таких как PSR-4, где классы и файлы организованы в соответствии с их пространствами имен. 🚩Как их использовать? Для использования пространств имен, нужно объявить их в начале файла с помощью ключевого слова namespace.
<?php
namespace MyProject\Models;

class User {
    public function getName() {
        return "John Doe";
    }
}
?>

Теперь класс User находится в пространстве имен MyProject\Models. Чтобы использовать этот класс в другом файле, нужно указать его полное имя:
<?php
require 'User.php';

$user = new \MyProject\Models\User();
echo $user->getName();
?>

Можно также использовать ключевое слово use для упрощения кода:
<?php
require 'User.php';

use MyProject\Models\User;

$user = new User();
echo $user->getName();
?>

Пространства имен могут содержать не только классы, но и функции и константы:
<?php
namespace MyProject\Utils;

const PI = 3.14;

function calculateCircleArea($radius) {
    return PI * $radius * $radius;
}
?>

Использование этих элементов будет аналогичным:
<?php
require 'Utils.php';

echo \MyProject\Utils\calculateCircleArea(5);
echo \MyProject\Utils\PI;
?>
Ставь 👍 и забирай 📚 Базу знаний

Бесплатные карьерные форумы для студентов IT-направлений 💡 На Найти IT ты сможешь найти работу, пообщаться с работадателями,
Бесплатные карьерные форумы для студентов IT-направлений 💡 На Найти IT ты сможешь найти работу, пообщаться с работадателями, показать свое резюме и пет-проекты, узнать всё о стажировках и вакансиях! Кто будет: Альфа-Банк, Сбер, Ozon Tech, МТС, X5 Tech — топ-компании, которые хантят студентов IT-специальностей ⚡ Плюсы для карьеры: — нетворкинг с 2000+ участниками — HR, тимлиды, разрабы и другие представители компаний, которые ответят на все твои вопросы — выступления спикеров, только в офлайне — 15+ призов в розыгрыше от FutureToday Участие бесплатно. Регистрируйся! 📍 Москва 📍 Санкт-Петербург

🤔 Для чего предназначены форматы запросов и ответов приложения? Форматы запросов и ответов обеспечивают обмен данными между клиентом и сервером. Популярные форматы: - JSON – компактный, удобный для API. - XML – читаемый, часто используется в SOAP. - YAML – удобен для конфигураций. - Protobuf – бинарный, эффективный для высоконагруженных систем. Форматы обеспечивают унифицированное взаимодействие между различными сервисами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое Cookies в PHP? Cookies (Куки) – это небольшие файлы, которые браузер сохраняет на компьютере пользователя и отправляет серверу при каждом запросе. 🚩Как работают Cookies? Установка Cookie в PHP
setcookie("username", "Alice", time() + 3600, "/");
Чтение Cookie в PHP
echo $_COOKIE["username"]; // ✅ Alice
Удаление Cookie
setcookie("username", "", time() - 3600, "/");
🚩Где используются Cookies? Авторизация (сохранение логина). Запоминание настроек (тема, язык). Корзина товаров (если нет сессий). Отслеживание пользователей (Google Analytics, реклама). 🚩Ограничения и безопасность Cookies Максимальный размер – 4KB (поэтому для больших данных лучше использовать SESSION). Можно изменить в браузере (поэтому не храните пароли в куках!). Уязвимость XSS → если сайт подвержен XSS-атакам, злоумышленник может украсть куки. Защита Cookies
setcookie("secure_cookie", "value", time() + 3600, "/", "", true, true);
Ставь 👍 и забирай 📚 Базу знаний

🤔 Есть ли какое-то различие между одинарными и двойными кавычками? - В большинстве языков программирования разницы нет. - В PHP двойные кавычки позволяют интерполировать переменные, а одинарные – нет. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Изиоффер переходит в публичное бета-тестирование! 🎉 Что нового: 🟢Анализ IT собеседований на основе 4500+ реальных интервью
Изиоффер переходит в публичное бета-тестирование! 🎉 Что нового: 🟢Анализ IT собеседований на основе 4500+ реальных интервью 🟢Вопросы из собеседований с вероятностью встречи 🟢Видео-примеры ответов на вопросы от Senior, Middle, Junior грейдов 🟢Пример лучшего ответа 🟢Задачи из собеседований 🟢Тестовые задания 🟢Примеры собеседований 🟢Фильтрация всего контента по грейдам, компаниям 🟢Тренажер подготовки к собеседованию на основе интервальных повторений и флеш карточек 🟢Тренажер "Реальное собеседование" с сценарием вопросов из реальных собеседований (скоро) 🟢Автоотклики на HeadHunter 🟢Закрытое сообщество easyoffer 💎 Акция в честь открытия для первых 500 покупателей: 🚀 Скидка 50% на PRO тариф на 1 год 🔥 Акция уже стартовала! 👉 https://easyoffer.ru/pro

🤔 Какой принцип нарушает Active Record? Это популярный шаблон проектирования, который используется для взаимодействия с базой данных. Он сочетает в себе логику бизнес-модели и работу с базой данных в одном объекте. Несмотря на свою популярность и удобство, Active Record нарушает принцип разделения ответственности (Single Responsibility Principle, SRP) из SOLID. 🚩Почему Active Record нарушает SRP? SRP гласит, что класс должен иметь только одну причину для изменения, то есть заниматься только одной задачей. 🟠Логика бизнес-модели Класс хранит правила и поведение, связанные с сущностью (например, вычисления, валидации, связи). 🟠Работа с базой данных Класс отвечает за взаимодействие с базой данных, включая CRUD-операции (создание, чтение, обновление, удаление), построение SQL-запросов и т. д. Таким образом, Active Record совмещает две разные ответственности: бизнес-логику и взаимодействие с базой данных. Если изменится структура базы данных или логика обработки данных, класс придется менять, что нарушает SRP.
class User extends ActiveRecord {
    public function getFullName() {
        return $this->first_name . ' ' . $this->last_name;
    }

    public function saveUser() {
        $this->save(); // Метод сохранения в базе данных
    }
}
🚩Альтернатива Чтобы соблюсти SRP, можно разделить бизнес-логику и работу с базой данных на разные уровни: 🟠Data Mapper Отвечает только за преобразование данных между объектами и базой данных. 🟠Сервисы Обрабатывают бизнес-логику.
class User {
    private $firstName;
    private $lastName;

    public function __construct($firstName, $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function getFullName() {
        return $this->firstName . ' ' . $this->lastName;
    }
}

class UserMapper {
    public function save(User $user) {
        // SQL-запрос для сохранения данных
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Какие типы БД бывают? Базы данных делятся на реляционные (SQL) и нереляционные (NoSQL). Реляционные базы данных (например, MySQL, PostgreSQL) хранят данные в виде таблиц и используют SQL для запросов. Нереляционные базы данных (например, MongoDB) используют разные модели данных (документы, ключ-значение и т.д.), что делает их более гибкими для работы с большими объёмами данных и неструктурированной информацией. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

📺 База 1000+ реальных собеседований На программиста, тестировщика, аналитика, проджекта и другие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 В чем преимущество фасада? Фасад (Facade) в PHP — это паттерн проектирования, который упрощает доступ к сложной системе классов, предоставляя единый интерфейс. 🚩ПлюсыУпрощает код Фасад скрывает сложные детали реализации и предоставляет удобный интерфейс.
$logger = new Logger();
$db = new DatabaseConnection();
$mailer = new Mailer();

$user = new User($db, $logger, $mailer);
$user->register("example@example.com");
С фасадом (всё инкапсулировано в один класс)
$userFacade = new UserFacade();
$userFacade->register("example@example.com");
Ослабляет зависимость кода от реализации Вы можете изменять внутреннюю структуру классов без влияния на клиентский код. ➕Улучшает поддержку и масштабируемость - Если нужно добавить новую функциональность, можно просто изменить фасад, не переписывая весь код. - Удобно при развитии проекта и подключении новых сервисов. 🚩Пример фасада в PHP
class PaymentGateway {
    public function processPayment($amount) {
        echo "Оплата на сумму $amount выполнена.\n";
    }
}

class NotificationService {
    public function sendNotification($message) {
        echo "Отправлено уведомление: $message\n";
    }
}

class OrderFacade {
    private $payment;
    private $notification;

    public function __construct() {
        $this->payment = new PaymentGateway();
        $this->notification = new NotificationService();
    }

    public function placeOrder($amount) {
        $this->payment->processPayment($amount);
        $this->notification->sendNotification("Заказ оплачен на сумму $amount.");
    }
}

// Использование
$order = new OrderFacade();
$order->placeOrder(1000);
Ставь 👍 и забирай 📚 Базу знаний

Где вести задачи и проекты? Конечно, в Битрикс24 Бесплатный онлайн-сервис для бизнеса и совместной работы. — Удобный планиров
Где вести задачи и проекты? Конечно, в Битрикс24 Бесплатный онлайн-сервис для бизнеса и совместной работы. — Удобный планировщик задач для всей команды с чек-листами и комментариями. — Популярные проектные методики: канбан, скрам, диаграмма ганта. — Видеозвонки в один клик из чата. — Календарь и слоты для совместного планирования. — Умный ИИ-помощник для постановки четких тз. Полный комплект для эффективности вашей команды. Ставьте первую задачу прямо сейчас. Начать #реклама 16+ task-24.bitrix24.ru О рекламодателе

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

🤔 В чем недостатки асинхронного шифрования? Асинхронное шифрование (или шифрование с открытым ключом, например, RSA, ECC) использует два ключа: Открытый ключ (Public Key) – для шифрования Закрытый ключ (Private Key) – для расшифровки 🚩Основные недостатки асинхронного шифрования 🟠Медленнее, чем симметричное шифрование Шифрование и расшифровка занимают больше времени, потому что алгоритмы (например, RSA) используют сложные математические операции (экспоненцирование и факторизацию). AES (симметричное) в 100–1000 раз быстрее, чем RSA. 🟠Длина ключа больше → больше ресурсов Чтобы обеспечить безопасность, RSA требует очень длинных ключей (2048+ бит). Чем длиннее ключ, тем больше памяти и CPU требуется для вычислений. 🟠Уязвимость к квантовым атакам Квантовые компьютеры смогут быстро взломать RSA и ECC с помощью алгоритма Шора. AES-256 останется безопасным, но RSA-2048 можно будет взломать за несколько часов или минут. 🟠Усложнённое управление ключами Нужно генерировать, хранить и передавать пары ключей. Закрытый ключ нельзя потерять – иначе данные невозможно расшифровать. Если злоумышленник завладеет закрытым ключом, он сможет расшифровать всю информацию. 🟠Атаки MITM и проблемы доверия Открытый ключ может быть подменён злоумышленником (атака "человек посередине" – MITM). Если хакер подменит публичный ключ, он сможет расшифровать данные. Ставь 👍 и забирай 📚 Базу знаний

Вебинар - "Оптимизация маркетинга с помощью нейросетей!" Хватит «гореть» на рутине! ⚡ Узнайте на бесплатном вебинаре, как ИИ
Вебинар - "Оптимизация маркетинга с помощью нейросетей!" Хватит «гореть» на рутине! ⚡ Узнайте на бесплатном вебинаре, как ИИ сократит вашу рутинную работу на 80%. 📅 15 октября в 19:00 (МСК) Вы получите практические инструкции, как: - Автоматизировать контент и анализ аудитории - Генерировать креативные идеи за секунды - Создать своего AI-аватара без программирования Для маркетологов, SMM- и контент-специалистов. 💰 Подарок после регистрации: «Гид по созданию цифрового аватара». Превратите ИИ в вашего неутомимого помощника! Зарегистрироваться #реклама 16+ ed.bonnieandslide.com О рекламодателе

🤔 Какое отличие у протоколов TCP и UDP? - TCP — надёжный, ориентирован на соединение: - Гарантирует доставку и порядок. - Используется для HTTP, FTP, SSH и т.п. - Медленнее из-за проверок, подтверждений, управления потоком. - UDP — ненадёжный, без соединения: - Быстрее, но без гарантии доставки и порядка. - Используется для видео/аудио-стриминга, игр, DNS, VoIP. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем отличие между двойным и тройным равно? 🚩Примеры разницы между `==` и `===` Сравнение чисел и строк
var_dump(5 == "5");  // ✅ true (PHP приводит строку "5" к числу 5)
var_dump(5 === "5"); // ❌ false (5 - это int, "5" - это string)
Сравнение true и false
var_dump(0 == false);  // ✅ true  (0 считается как false)
var_dump(0 === false); // ❌ false (0 - это int, а false - это bool)
Сравнение null
var_dump(null == false);  // ✅ true  (PHP считает null как false)
var_dump(null === false); // ❌ false (null != boolean)
Ставь 👍 и забирай 📚 Базу знаний

🤔 Какие типы данных есть в PHP? В PHP есть восемь основных типов данных: четыре скалярных (integer, float, string, boolean) и четыре составных (array, object, callable, iterable). Также существуют два специальных типа: `resource` для ссылок на внешние ресурсы и `null` для отсутствия значения. Эти типы данных позволяют гибко работать с различными структурами данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое вертикальное и масштабирование в БД? Это два метода повышения производительности и пропускной способности баз данных. 🚩Вертикальное масштабирование (Vertical Scaling) Вертикальное масштабирование, также известное как масштабирование "вверх" (scale up), предполагает улучшение производительности базы данных за счет увеличения ресурсов на одном сервере. Это может включать: Добавление большего объема оперативной памяти (RAM), Увеличение мощности процессора (CPU), Увеличение объема хранилища (SSD или HDD), Использование более быстрого сетевого оборудования 🟠Плюсы и минусыПростота реализации Легко выполнить, поскольку не требует изменения архитектуры приложения. ➕Единая точка управления Администрирование базы данных проще, так как все данные находятся на одном сервере. ➖Ограничения оборудования Есть пределы, до которых можно увеличивать ресурсы на одном сервере. ➖Единая точка отказа Если сервер выходит из строя, вся база данных становится недоступной. 🟠Пример Допустим, у вас есть сервер с 16 ГБ оперативной памяти и 4-ядерным процессором. Вертикальное масштабирование может включать замену его на сервер с 64 ГБ оперативной памяти и 16-ядерным процессором. Ставь 👍 и забирай 📚 Базу знаний