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

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

Ir al canal en Telegram

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

Mostrar más
2 345
Suscriptores
+124 horas
-47 días
-2630 días
Archivo de publicaciones
🤔 Как реализуется полиморфизм ? 1. Полиморфизм реализуется через наследование, интерфейсы и абстрактные классы. 2. Родительский класс или интерфейс может быть заменён его наследником, сохраняя единообразие вызовов. 3. Пример: использование одного метода render() для вывода разного контента в зависимости от конкретного класса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Получи грант на обучение в Центральном университете Центральный университет выдает гранты на 4 года обучения в бакалавриате.
Получи грант на обучение в Центральном университете Центральный университет выдает гранты на 4 года обучения в бакалавриате. Грант покрывает до 100% стоимости обучения. Участвуй в отборе, чтобы получить грант. Получи доступ к уникальным активностям для абитуриентов. Для выпускников 10-х, 11-х классов и колледжей. Подать заявку #реклама apply.centraluniversity.ru О рекламодателе

🤔 Какие бывают индексы? Чтобы продемонстрировать, как можно использовать индексы, прежде всего нужно рассмотреть процесс создания индексов в базе данных и последующее выполнение SQL запросов с использованием PHP. Возьмем MySQL в качестве примера базы данных и использование PDO (PHP Data Objects) для взаимодействия с базой данных из PHP. 🚩Создание индексов в MySQL Допустим, у вас есть таблица users с полями id, email, name, и age. Вы хотите оптимизировать поиск по email, который часто используется для входа в систему или других операций. Вы можете создать уникальный индекс для столбца email
CREATE UNIQUE INDEX idx_email ON users (email);
Если вы также часто выполняете запросы, которые фильтруют пользователей по возрасту, вы можете создать простой индекс для столбца age
CREATE INDEX idx_age ON users (age);
🚩Использование индексов Теперь, когда у вас есть индексы, давайте посмотрим, как вы можете использовать PHP для выполнения запросов, которые могут извлекать выгоду из этих индексов. Мы будем использовать PDO для создания безопасных запросов с использованием подготовленных выражений.
<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Запрос с использованием индекса по email
    $email = 'user@example.com';
    $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
    $stmt->execute(['email' => $email]);

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "Имя: " . $row['name'] . ", Email: " . $row['email'] . ", Возраст: " . $row['age'] . "<br/>";
    }

    // Запрос с использованием индекса по возрасту
    $age = 25;
    $stmt = $pdo->prepare("SELECT * FROM users WHERE age >= :age");
    $stmt->execute(['age' => $age]);

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "Имя: " . $row['name'] . ", Email: " . $row['email'] . ", Возраст: " . $row['age'] . "<br/>";
    }
} catch (PDOException $e) {
    die("Ошибка подключения: " . $e->getMessage());
}
?>
Ставь 👍 и забирай 📚 Базу знаний

Офисные башни JOIS от MR Office в 10 мин от Москва-Сити JOIS - это современные башни класса А от нового бренда, объединяющего
Офисные башни JOIS от MR Office в 10 мин от Москва-Сити JOIS - это современные башни класса А от нового бренда, объединяющего все офисные объекты MR Group. Проект премиального бизнес-центра включает две башни: 1) 43-этажный небоскреб MAST с офисами от 96 м² и возможностью приобретения офисных помещений по отдельности, а также целыми этажами или блоками 2) Башня CREDO представляет из себя единый офис площадью 22 000 м² Главные преимущества будущего проекта: ✨Ландшафтный парк площадью 1,3 Га и пешеходный маршрут более 2,3 км ✨Расположение в 5 минутах до ТТК и 10 минутах от Москва-сити ✨3-уровневый подземный паркинг, рассчитанный на 400 машиномест ✨Отделка Shell&Core - оптимальное решение для создания эксклюзивного интерьера ✨Рассрочка 0% на приобретение коммерческой недвижимости Узнать больше Проектная декларация на сайте https://наш.дом.рф/. Застройщик: ООО СЗ Л2-ДЕВЕЛОПМЕНТ #реклама mr-group.ru О рекламодателе

🤔 Что известно про букву D в SOLID и её связь с интерфейсами? D означает Dependency Inversion Principle — принцип инверсии зависимостей. 1. Модули верхнего уровня не должны зависеть от модулей нижнего уровня, оба должны зависеть от абстракций. 2. В коде это реализуется через интерфейсы: классы работают с интерфейсами, а не с конкретными реализациями. 3. Это упрощает тестирование и замену модулей без изменения основного кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Высшее образование онлайн — поменяйте жизнь в 2025 году! ✅Набор в мае: от 6700 ₽/мес.* Московский технологический институт пр
Высшее образование онлайн — поменяйте жизнь в 2025 году! ✅Набор в мае: от 6700 ₽/мес.* Московский технологический институт предлагает: — Высшее образование в московском вузе без выезда на сессии — Полностью дистанционный онлайн-формат — Возможность обучаться дома, на работе, в путешествии — Диплом государственного образца — Более 60 направлений на выбор (IT, инженерные, экономические, педагогические, управленческие и другие) — 5 способов оплаты обучения — Поддержка персонального куратора: от поступления до получения диплома Узнать больше #реклама 16+ mti-education.ru О рекламодателе

🤔 Что такое составной индекс? Составной индекс (Composite Index) – это индекс, который создаётся сразу на несколько колонок таблицы. 🚩Как работает составной индекс? 🟠Пример без индекса (медленный поиск) Допустим, у нас есть таблица orders
CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    status VARCHAR(50),
    created_at DATETIME
);
И мы выполняем поиск по user_id и status
SELECT * FROM orders WHERE user_id = 5 AND status = 'paid';
Создаём составной индекс (ускоряем поиск)
CREATE INDEX idx_user_status ON orders(user_id, status);
Как SQL использует составной индекс? (Правило слева направо) Важный момент: составной индекс работает слева направо.
SELECT * FROM orders WHERE user_id = 5 AND status = 'paid'; -- ✅ Использует индекс
SELECT * FROM orders WHERE user_id = 5; -- ✅ Использует индекс (user_id - первый в индексе)
НЕ работает
SELECT * FROM orders WHERE status = 'paid'; -- ❌ Индекс не используется (user_id пропущен)
Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем отличается абстрактный класс от интерфейса? Абстрактный класс может содержать как абстрактные методы (без реализации), так и методы с реализацией, в то время как интерфейс не содержит реализации методов до PHP 8. Абстрактный класс может содержать поля и конструкторы, а интерфейс — только сигнатуры методов. Класс может наследовать только один абстрактный класс, но реализовать несколько интерфейсов. Абстрактный класс используется, когда требуется частичная реализация, а интерфейс — для создания контракта. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Сколько приложений нужно вашей команде для работы? Всего один сервис — Битрикс24! А внутри десятки инструментов для совместно
+7
Сколько приложений нужно вашей команде для работы? Всего один сервис — Битрикс24! А внутри десятки инструментов для совместной работы и бизнеса. Читайте подробнее в карточках. Регистрируйтесь сейчас, чтобы забрать их все себе бесплатно😊 Зарегистрироваться #реклама 16+ office-online.bitrix24.ru О рекламодателе

🤔 Расскажи про фабрики Это шаблон проектирования, который относится к порождающим шаблонам и используется для создания объектов без необходимости указывать точный класс создаваемого объекта. Основная идея фабрики заключается в том, чтобы делегировать создание объектов специальному классу или методу, что упрощает управление кодом и позволяет добиться большей гибкости и расширяемости. 🚩Зачем нужны фабрики? 🟠Инкапсуляция процесса создания объектов Если создание объекта требует сложной логики или конфигурации, фабрика позволяет скрыть эту сложность от остальной части кода. 🟠Снижение зависимости от конкретных классов Вы используете интерфейсы или абстрактные классы вместо конкретных реализаций. Это упрощает замену одного типа объекта на другой. 🟠Гибкость и расширяемость Фабрики позволяют добавлять новые классы без изменения существующего кода. 🚩Типы фабрик 🟠Простая фабрика (Simple Factory) Это метод, который возвращает объект одного из нескольких возможных классов в зависимости от переданных параметров.
   class ShapeFactory {
       public static function createShape(string $type) {
           return match ($type) {
               'circle' => new Circle(),
               'square' => new Square(),
               default => throw new Exception("Unknown shape type"),
           };
       }
   }

   $circle = ShapeFactory::createShape('circle'); // Возвращает объект Circle
   
🟠Фабричный метод (Factory Method) В этом шаблоне создание объекта делегируется подклассам. Основной класс определяет интерфейс для создания объектов, но сам не знает, какие конкретные классы будут созданы.
   interface Logger {
       public function log(string $message);
   }

   class FileLogger implements Logger {
       public function log(string $message) {
           echo "Logging to a file: $message";
       }
   }

   class DatabaseLogger implements Logger {
       public function log(string $message) {
           echo "Logging to a database: $message";
       }
   }

   abstract class LoggerFactory {
       abstract public function createLogger(): Logger;
   }

   class FileLoggerFactory extends LoggerFactory {
       public function createLogger(): Logger {
           return new FileLogger();
       }
   }

   $factory = new FileLoggerFactory();
   $logger = $factory->createLogger();
   $logger->log("Hello World");
   
🟠Абстрактная фабрика (Abstract Factory) Этот шаблон используется для создания семейств взаимосвязанных объектов.
   interface GUIFactory {
       public function createButton(): Button;
       public function createCheckbox(): Checkbox;
   }

   class WindowsFactory implements GUIFactory {
       public function createButton(): Button {
           return new WindowsButton();
       }
       public function createCheckbox(): Checkbox {
           return new WindowsCheckbox();
       }
   }

   class MacOSFactory implements GUIFactory {
       public function createButton(): Button {
           return new MacOSButton();
       }
       public function createCheckbox(): Checkbox {
           return new MacOSCheckbox();
       }
   }

   $factory = new WindowsFactory();
   $button = $factory->createButton();
   $checkbox = $factory->createCheckbox();
   
🚩Как использовать фабрики? Если вы работаете с приложением, где объекты часто меняются, например, в зависимости от окружения (Windows, MacOS). Когда создание объектов сложное и требует дополнительной логики. Когда нужно уменьшить зависимость между модулями. Ставь 👍 и забирай 📚 Базу знаний

Виртуальный сервер в аренду в Турции или России. Отказоустойчивый виртуальный облачный сервер на базе виртуализации VMWARE по
Виртуальный сервер в аренду в Турции или России. Отказоустойчивый виртуальный облачный сервер на базе виртуализации VMWARE по модели подписки. - Бесплатная миграция инфраструктуры в Турцию - Размещайте ресурсы в Турции или России и оплачивайте в рублях, турицких лирах или евро. - Храните резервные копии данных за рубежом для минимизации рисков - Продолжайте использовать импортное ПО, скачивайте обновления и патчи, общайтесь с техподдержкой - Доступность сервиса — от 99,982% SLA - Дата центры Tier III в России и Турции - Почасовой биллинг и постоплата Подключите услугу сегодня со скидкой 50% на инфраструктуру. Подать заявку #реклама cloud4y.ru О рекламодателе

🤔 Какой принцип из SOLID позволяет соблюдать добавочные преобразования в работе? Принцип открытости/закрытости (Open/Closed Principle) из SOLID утверждает, что программные сущности должны быть открыты для расширения, но закрыты для модификации. Это позволяет добавлять новые функциональности без изменения существующего кода.? Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Получи грант до 1,2 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с пра
Получи грант до 1,2 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой? Поступай в магистратуру Центрального университета! - 4 офлайн программы по востребованным направлениям ИТ - Онлайн-программа по машинному обучению - 300 мест с грантами до 1,2 млн руб. - Вечерние занятия и учеба по выходным — удобно совмещать с работой - Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса - Возможность стажировок и трудоустройства в ведущих компаниях - Государственный диплом за 2 года Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии. Оставляй заявку на грант уже сейчас! Подать заявку #реклама 16+ apply.centraluniversity.ru О рекламодателе

🤔 Что такое middleware? Это ПО, которое располагается между веб-сервером и приложением. Оно обрабатывает входящие запросы до того, как они достигнут вашего приложения, или обрабатывает исходящие ответы после того, как приложение их сгенерировало. 🚩Зачем нужен Middleware 🟠Управление запросами Может изменять или проверять запросы перед передачей их в приложение. Например, оно может проверять наличие валидных токенов доступа для аутентификации или осуществлять проверку прав доступа. 🟠Перехват ответов Также может изменять ответы перед тем, как они будут отправлены пользователю, например, добавлять нужные заголовки HTTP или сжимать данные. 🟠Логирование и мониторинг Оно может записывать информацию о запросах и ответах для анализа трафика или обнаружения ошибок. 🟠Обработка ошибок Часто используется для централизованной обработки ошибок, позволяя управлять ошибками элегантно и единообразно.
namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class CheckAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            return redirect('/login');
        }

        return $next($request);
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Крупнейший университет искусственного интеллекта Учим использовать ChatGPT в профессиональных целях, создавать нейро-сотрудни
Крупнейший университет искусственного интеллекта Учим использовать ChatGPT в профессиональных целях, создавать нейро-сотрудников и зарабатывать на искусственном интеллекте. ✨ 8 000+ студентов со всего мира ✨ 600+ AI-проектов, созданных студентами ✨ Сборная Университета — победители крупнейших AI-хакатонов России ✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие) ✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие) Будем рады видеть тебя в наших рядах! Узнать больше #реклама 16+ neural-university.ru О рекламодателе

🤔 Как работает динамическая типизация? Динамическая типизация позволяет переменной менять тип во время выполнения программы. Тип определяется автоматически на основе присвоенного значения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Устроиться аналитиком в Яндекс за выходные 7–8 июня проводим Weekend Offer Analytics. До 3 июня оставьте заявку на участие, 7 июня пройдите два технические собеседования, а 8 июня познакомьтесь с командами и получите офер. В мероприятии участвует 12 команд: Алиса и Умные устройства, Игры, R&D, Рекламные технологии, Поиск и Суперапп, Безопасность, Коммерческий департамент, Автономный транспорт, Ecom-сценарии Поиска, Качество Поиска, Международный Поиск, Карты. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным. Зарегистрироваться #реклама 16+ yandex.ru О рекламодателе

🤔 Что такое абстрагирование? Это принцип программирования и проектирования, который позволяет выделить важные характеристики объекта или системы и скрыть их сложные детали. Основная цель абстрагирования – упростить сложные системы, делая их более понятными и управляемыми, сосредоточив внимание на их основных аспектах и поведении. 🚩Зачем нужно абстрагирование 🟠Снижение сложности Сокращает количество деталей, с которыми нужно работать, что облегчает понимание и работу с системой. 🟠Повышение читаемости кода Упрощает код, делая его более читаемым и легким для поддержки. 🟠Повторное использование кода Создаёт возможность повторного использования общих функций и логики. 🟠Инкапсуляция Позволяет скрывать реализацию и представлять только необходимые интерфейсы для взаимодействия. 🟠Гибкость и расширяемость Облегчает добавление новых функциональностей без изменения существующего кода. 🚩Как используется абстрагирование Абстрагирование в программировании часто реализуется через классы и интерфейсы. Ниже приведены примеры абстракции в объектно-ориентированном программировании (ООП). 🚩Пример абстракции с использованием классов и интерфейсов 🟠Интерфейс Определяет набор методов, которые должны быть реализованы, не указывая, как именно они должны быть реализованы.
interface Shape {
    public function draw();
}
🟠Классы, реализующие интерфейс Реализуют методы, определённые в интерфейсе.
class Circle implements Shape {
    public function draw() {
        echo "Drawing a circle";
    }
}

class Square implements Shape {
    public function draw() {
        echo "Drawing a square";
    }
}
Использование абстракции
function renderShape(Shape $shape) {
    $shape->draw();
}

$circle = new Circle();
$square = new Square();

renderShape($circle); // Вывод: Drawing a circle
renderShape($square); // Вывод: Drawing a square
🚩Плюсы и минусы Снижение сложности Абстракция скрывает сложные детали реализации, облегчая работу с системой. ➕Улучшение читаемости Код становится более понятным и структурированным. ➕Гибкость и расширяемость Облегчает добавление новых функций и изменений. ➕Повторное использование Позволяет использовать общий код в разных частях программы. ➖Избыточность Иногда может приводить к избыточной сложности, если абстракции слишком сложные или используются неправильно. ➖Накладные расходы Может потребоваться больше времени и усилий на создание абстракций и их поддержку. Ставь 👍 и забирай 📚 Базу знаний

Ищу помощников, которые хотят подработку от 3 тыс в день Без опыта, нужен только компьютер, занятость 3-6 часов в день Всему
Ищу помощников, которые хотят подработку от 3 тыс в день Без опыта, нужен только компьютер, занятость 3-6 часов в день Всему обучат на бесплатном курсе и после возьму на работу: ✅ 3 дня уроков по 30 минут ✅ Домашки с проверкой и оплатой ✅ Плачу 10 тыс за каждую выполненную домашку Все кто пройдет курс, получат сертификат от школы с образовательной лицензией. 👍 Для регистрации жмите кнопку "Зарегистрироваться". Зарегистрироваться #реклама 16+ course.wildmanager.ru О рекламодателе

🤔 Какие у вас знания об инструменте Git? Git — это распределенная система контроля версий, которая позволяет отслеживать изменения в файлах и сотрудничать с другими разработчиками. Git поддерживает ветвление, слияние и возможность восстановления предыдущих состояний проекта.? Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний