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

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

Open in Telegram

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

Show more
2 345
Subscribers
+124 hours
-47 days
-2630 days
Posts Archive
Высшее образование дистанционно в Московском ВУЗе Вы мечтаете получить высшее образование, но не сдали ЕГЭ или получили низки
Высшее образование дистанционно в Московском ВУЗе Вы мечтаете получить высшее образование, но не сдали ЕГЭ или получили низкие баллы? У нас есть решение для вас! Институт Международных Экономических Связей предлагает дистанционное обучение , которое позволяет получать качественные знания из любой точки мира по 10+ направлениям обучения. ✅ Государственный диплом без отметки о дистантеУдобный личный кабинет студентаПоддержка кураторов на каждом этапе обученияМожно поступить без ЕГЭ Узнать больше #реклама 16+ imes.su О рекламодателе

🤔 Для чего используется индексация и что это такое? Индексация — это механизм в базах данных, который ускоряет поиск данных в таблицах. Индекс работает как оглавление книги: вместо того чтобы просматривать всю таблицу, база находит нужные данные по индексу. 🚩Зачем нужна индексация? Ускоряет поиск (SELECT) – база данных быстрее находит нужные строки. Ускоряет сортировку (ORDER BY) – индексы помогают быстрее упорядочивать данные. Оптимизирует соединения таблиц (JOIN). Замедляют операции INSERT, UPDATE, DELETE (так как индекс тоже нужно обновлять). Индексы занимают дополнительное место в памяти. 🚩Пример индекса в SQL 1⃣Создание индекса
CREATE INDEX idx_users_name ON users(name);
Теперь поиск по name будет быстрее
SELECT * FROM users WHERE name = 'Alice';
🚩Типы индексов 🟠Обычный (B-Tree) индекс Основной вид индекса, который ускоряет поиск по WHERE.
CREATE INDEX idx_name ON users(name);
🟠UNIQUE-индекс Гарантирует, что значения в колонке не будут повторяться.
CREATE UNIQUE INDEX idx_email ON users(email);
🟠FULLTEXT-индекс Используется для быстрого поиска по тексту.
CREATE FULLTEXT INDEX idx_text ON articles(content);
🟠Composite (Составной) индекс Индекс сразу на несколько колонок (например, name + age).
CREATE INDEX idx_name_age ON users(name, age);
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое middleware? Middleware в PHP — это компонент, который обрабатывает HTTP-запросы и ответы на пути между сервером и конечной точкой. Каждый middleware может модифицировать запрос, ответ или остановить выполнение цепочки, отправив ответ напрямую. Они используются для выполнения задач, таких как аутентификация, логирование, обработка ошибок и кэширование. Middleware широко применяется в современных фреймворках, таких как Laravel, для разделения логики обработки запросов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Почему вы не используете Битрикс24 CRM с AI? 1- не знал 2- забыл Рассказываем и напоминаем! ✅Битрикс24 CRM с AI помогает увел
+5
Почему вы не используете Битрикс24 CRM с AI? 1- не знал 2- забыл Рассказываем и напоминаем! ✅Битрикс24 CRM с AI помогает увеличивать продажи, работать с постоянными клиентами и сохранять все важные данные. AI-помощник CoPilot внутри сервиса расшифрует телефонные разговоры и автоматически заполнит карточки клиента в CRM. Битрикс24 можно использовать бесплатно для всех команд, независимо от их размера. ⚡Не тратьте время на рутину. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

🤔 Какие могут быть проблемы от Join'а? Использование JOIN в SQL может привести к нескольким проблемам, особенно при работе с большими таблицами. Рассмотрим основные из них. 🟠Производительность (нагрузка на БД) Чем больше данных соединяется, тем больше ресурсов требуется. Проблема: JOIN создаёт временную таблицу в памяти, что замедляет запрос. Если нет индексов, соединение идёт через полный перебор (Nested Loop Join), что очень медленно. Решение: Добавить индексы на поля, по которым идёт соединение. Использовать EXPLAIN для анализа запроса.
EXPLAIN SELECT * FROM users JOIN orders ON users.id = orders.user_id;
🟠Дублирование строк (Картезианское произведение) Если используется JOIN, но нет условия соединения (ON), запрос создаст все возможные комбинации строк. Проблема:
SELECT * FROM users, orders;
Решение Всегда указывать ON или USING:
SELECT * FROM users JOIN orders ON users.id = orders.user_id;
🟠Потеря данных при `INNER JOIN` INNER JOIN возвращает только совпадающие строки, из-за чего можно потерять данные. Проблема
SELECT users.id, users.name, orders.id AS order_id  
FROM users  
INNER JOIN orders ON users.id = orders.user_id;
Решение: Использовать LEFT JOIN, если нужны все пользователи, даже без заказов:
SELECT users.id, users.name, orders.id AS order_id  
FROM users  
LEFT JOIN orders ON users.id = orders.user_id;
🟠Медленный `JOIN` на `TEXT` или `VARCHAR` JOIN по строковым полям (VARCHAR, TEXT) работает медленнее, чем по числовым (INT). Проблема
SELECT * FROM users JOIN orders ON users.email = orders.email;
🟠Несовместимость типов данных Если соединяются таблицы с разными типами данных (INT vs VARCHAR), может быть скрытое приведение типов, которое замедляет запрос. Проблема
SELECT * FROM users  
JOIN orders ON users.id = orders.user_id;  
Решение - Убедиться, что типы данных совпадают (INT = INT). - Привести к нужному типу:
SELECT * FROM users  
JOIN orders ON users.id = CAST(orders.user_id AS INT);
Ставь 👍 и забирай 📚 Базу знаний

Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте бесплатно❤️ Попробовать #реклама 18+ music.yandex.ru О рекламодателе Реклама на Яндексе

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

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

🤔 Что такое статическое связывание? Статическое связывание также играет важную роль, особенно когда дело доходит до разрешения вызовов методов в контексте наследования классов. Использует позднее статическое связывание для предоставления контекста вызова в статических методах, что позволяет переопределять статические методы в дочерних классах. Рассмотрим это на примере.
class BaseClass {
    public static function who() {
        echo "Я BaseClass\n";
    }

    public static function test() {
        self::who(); // Здесь используется статическое связывание
    }
}

class ChildClass extends BaseClass {
    public static function who() {
        echo "Я ChildClass\n";
    }
}

BaseClass::test(); // Вывод: Я BaseClass
ChildClass::test(); // Вывод: Я BaseClass
Предоставляет ключевое слово static::, которое позволяет переопределять статические методы в контексте наследования, используя так называемое "позднее статическое связывание".
class BaseClass {
    public static function who() {
        echo "Я BaseClass\n";
    }

    public static function test() {
        static::who(); // Используется позднее статическое связывание
    }
}

class ChildClass extends BaseClass {
    public static function who() {
        echo "Я ChildClass\n";
    }
}

BaseClass::test(); // Вывод: Я BaseClass
ChildClass::test(); // Вывод: Я ChildClass
Ставь 👍 и забирай 📚 Базу знаний

Современное образование в Moscow Business School Moscow Business School — это учебный центр, в котором каждый может повысить профессиональные навыки. С 2007 года мы обучаем по авторским курсам и программам МВА, создаем тренинги и проводим тимбилдинги ⚡ О НАС:⚡ --> Ведущая бизнес-школа России с более чем 15-летним опытом --> Источник новых знаний, смыслов и компетенций --> 800+ образовательных программ обучения --> Современные онлайн и оффлайн курсы --> Команда из 700+ управленцев, менеджеров, тренеров и практиков --> 40+ программ MBA и Executive MBA с уникальной российской экспертизой --> ТОПовые направления повышения квалификации --> 20 000 слушателей ежегодно Узнать больше #реклама mbschool.ru О рекламодателе

🤔 Что такое Factory? Это паттерн проектирования, который предоставляет способ создания объектов без указания точного класса. • Фабрика скрывает детали создания объектов, предоставляя интерфейс для их создания. • Пример: ShapeFactory может возвращать объекты разных классов (Circle, Square) на основе входных параметров. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Освойте профессию Системный аналитик с нуля за 7 месяцев Освойте высокооплачиваемую IT-профессию без программирования. Выдаём
Освойте профессию Системный аналитик с нуля за 7 месяцев Освойте высокооплачиваемую IT-профессию без программирования. Выдаём диплом, помогаем с трудоустройством. Excel, BPMN, UML, Python, SQL, API Преимущества обучения в Академии Eduson: 🎓 22 реальных бизнес-кейса 🎓 официальный государственный диплом 🎓 рассрочка 0% на 24 мес. 🎓 бессрочный доступ к лекциям и материалам, которые регулярно обновляются 🎓 личный куратор с Вами на связи Начните обучаться онлайн и получать доход уже во время обучения! Получить скидку #реклама 16+ mrqz.me О рекламодателе

🤔 Какой синтаксис у заголовков? Заголовки в языках и разметки часто используются для указания ключевой информации, на которую стоит обратить внимание, и они различаются в зависимости от конкретного контекста и языка. Ниже приведены примеры синтаксиса заголовков в различных контекстах: 🚩Заголовки в HTML Поддерживает шесть уровней заголовков, от <h1> до <h6>, где <h1> представляет самый важный заголовок, а <h6> — наименее важный.
<h1>Заголовок уровня 1</h1>
<h2>Заголовок уровня 2</h2>
<h3>Заголовок уровня 3</h3>
<h4>Заголовок уровня 4</h4>
<h5>Заголовок уровня 5</h5>
<h6>Заголовок уровня 6</h6>
🚩Заголовки в Markdown Это язык разметки, который упрощает форматирование текста, особенно для написания документации. Заголовки создаются с помощью символа # перед текстом заголовка. Количество символов # определяет уровень заголовка.
# Заголовок уровня 1
## Заголовок уровня 2
### Заголовок уровня 3
#### Заголовок уровня 4
##### Заголовок уровня 5
###### Заголовок уровня 6
🚩Заголовки в LaTeX Это система подготовки документов, широко используемая для научных и технических документов. В LaTeX заголовки создаются с помощью команд \section, \subsection, \subsubsection и так далее.
\section{Заголовок уровня 1}
\subsection{Заголовок уровня 2}
\subsubsection{Заголовок уровня 3}
\paragraph{Заголовок уровня 4}
\subparagraph{Заголовок уровня 5}
🚩Заголовки в Языке разметки Wiki Многие вики-движки (например, MediaWiki) используют свои синтаксисы для создания заголовков. В MediaWiki заголовки создаются с помощью равно (=) вокруг текста заголовка.
= Заголовок уровня 1 =
== Заголовок уровня 2 ==
=== Заголовок уровня 3 ===
==== Заголовок уровня 4 ====
===== Заголовок уровня 5 =====
====== Заголовок уровня 6 ======
🚩Заголовки в языках Часто не используются так же, как в разметке, но комментарии могут выполнять схожую роль для организации и документирования кода. Примеры синтаксиса для комментариев-заголовков: Python
# Заголовок уровня 1
## Заголовок уровня 2
### Заголовок уровня 3
JavaScript
// Заголовок уровня 1
// =================
// Заголовок уровня 2
// -----------------
// Заголовок уровня 3
// ~~~~~~~~~~~~~~~~~
Ставь 👍 и забирай 📚 Базу знаний

Бесплатный курс по 3D-моделированию с нуля Начни карьеру в дизайне и получи первую зарплату! Вас ждет реальный рабочий процес
Бесплатный курс по 3D-моделированию с нуля Начни карьеру в дизайне и получи первую зарплату! Вас ждет реальный рабочий процесс: ✅ разные задачи по 3D Blander ✅ опыт общения с клиентами ✅ оплата за проект Освойте Blender и создайте работу для портфолио Обучение полностью бесплатное для первых 70 участников. Осталось 28 мест. В конце курса мы откроем для вас доступ к звездной распродаже Там вы сможете обменять звездочки на ценные бонусы: 1. Гайд по выходу на биржу UpWork 2. Курс «Заработок на дизайне» 3. Анимированный концепт Samsung True для портфолио 4. Бессрочный грант на обучение: 15 000 ₽ 5. Гайд «Горячие клавиши в Blender» Записывайтесь сейчас! Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе

🤔 Зачем генераторы, если есть итераторы? 1. Генераторы упрощают создание итераторов, предоставляя возможность обхода коллекций без написания полноценного класса. 2. Они экономят память, поскольку возвращают значения по одному через yield, а не загружают всю коллекцию в память. 3. Итераторы требуют ручной реализации методов iter и next, тогда как генераторы используют стандартные функции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Какими способами организовать порции? В PHP можно организовать обработку данных порциями разными способами, в зависимости от того, с чем именно мы работаем: с базой данных, файлами или массивами. Основные методы: SQL-запрос с LIMIT и OFFSET Чтение файла построчно (fgets(), SplFileObject) Итерация по массиву с array_chunk() Использование генераторов (yield) 🟠Постраничная выборка в SQL (`LIMIT` + `OFFSET`) При работе с базой данных мы можем загружать данные порциями с помощью LIMIT и OFFSET
$limit = 10;  // Количество записей на страницу  
$offset = 0;  // Смещение (номер страницы * $limit)  

$sql = "SELECT * FROM users ORDER BY id LIMIT $limit OFFSET $offset";
$result = $pdo->query($sql)->fetchAll();
Альтернативный вариант – постраничная выборка без OFFSET
$last_id = 0;
$sql = "SELECT * FROM users WHERE id > $last_id ORDER BY id LIMIT $limit";
🟠Чтение файла порциями (`fgets()`, `SplFileObject`) При работе с большими файлами можно читать их построчно, а не загружать в память целиком.fgets() – чтение построчно
$handle = fopen("large_file.txt", "r");
while (($line = fgets($handle)) !== false) {
    echo $line;
}
fclose($handle);
SplFileObject – более удобный способ
$file = new SplFileObject("large_file.txt");
while (!$file->eof()) {
    echo $file->fgets();
}
🟠Разделение массива на порции (`array_chunk()`) Если у нас массив данных, можно разбить его на части
$data = range(1, 100);
$chunks = array_chunk($data, 10);

foreach ($chunks as $chunk) {
    print_r($chunk); // Выведет массивы по 10 элементов
}
🟠Генераторы (`yield`) – ленивый способ Генераторы позволяют возвращать элементы по одному, не загружая всё в память сразу.
function getData() {
    for ($i = 1; $i <= 100; $i++) {
        yield $i; // Возвращает по одному значению
    }
}

foreach (getData() as $num) {
    echo $num . "\n";
}
Ставь 👍 и забирай 📚 Базу знаний

Курсы JAVA-разработки Гарантия ЗП от 120 000р в договоре Jаvа — это язык, на котором строятся банковские системы, мобильные п
Курсы JAVA-разработки Гарантия ЗП от 120 000р в договоре Jаvа — это язык, на котором строятся банковские системы, мобильные приложения, крупные веб-сервисы и многое другое, а спрос на Jаvа-разработчиков стабильно высок. Благодаря кроссплатформенности и надежности, ты сможешь работать в любой сфере IТ — от финансов до Коммерческой отрасли.📊💰 Почему это работает?✨ - Минимальные вложения. - Тысячи человек уже в IТ. Наши выпускники работают в крутых компаниях: от стартапов до международных корпораций. - Наши менторы — это опытные разработчики, которые ежедневно работают в IТ и готовы делиться актуальными знаниями. P.S. Если всё ещё сомневаешься и думаешь что будет сложно — просто попробуй.😊 Мы берем на себя все риски: ты оплачиваешь основную стоимость обучения только после успешного трудоустройства — это закреплено в договоре. Подать заявку #реклама 16+ kata.academy О рекламодателе

🤔 Как реализуется полиморфизм ? 1. Полиморфизм реализуется через наследование, интерфейсы и абстрактные классы. 2. Родительский класс или интерфейс может быть заменён его наследником, сохраняя единообразие вызовов. 3. Пример: использование одного метода render() для вывода разного контента в зависимости от конкретного класса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний