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

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

Open in Telegram
2 365
Subscribers
-124 hours
-47 days
-2030 days
Attracting Subscribers
June '26
June '26
+7
in 0 channels
May '26
+23
in 0 channels
Get PRO
April '26
+21
in 0 channels
Get PRO
March '26
+27
in 0 channels
Get PRO
February '26
+47
in 0 channels
Get PRO
January '26
+42
in 0 channels
Get PRO
December '25
+33
in 0 channels
Get PRO
November '25
+70
in 0 channels
Get PRO
October '25
+44
in 0 channels
Get PRO
September '25
+46
in 0 channels
Get PRO
August '25
+46
in 0 channels
Get PRO
July '25
+52
in 0 channels
Get PRO
June '25
+52
in 0 channels
Get PRO
May '25
+58
in 0 channels
Get PRO
April '25
+82
in 0 channels
Get PRO
March '25
+132
in 3 channels
Get PRO
February '25
+107
in 2 channels
Get PRO
January '25
+125
in 54 channels
Get PRO
December '24
+56
in 1 channels
Get PRO
November '24
+69
in 1 channels
Get PRO
October '24
+186
in 45 channels
Get PRO
September '24
+247
in 249 channels
Get PRO
August '24
+103
in 0 channels
Get PRO
July '24
+200
in 54 channels
Get PRO
June '24
+707
in 244 channels
Get PRO
May '24
+698
in 189 channels
Get PRO
April '24
+471
in 23 channels
Date
Subscriber Growth
Mentions
Channels
08 June+1
07 June+1
06 June0
05 June0
04 June+1
03 June+2
02 June0
01 June+2
Channel Posts
Обнулите все свои кредиты и долги по госпрограмме! Долги от 200т.р. Законно по ФЗ127. 0 проигранных дел. Консультация 0₽. Сох
Обнулите все свои кредиты и долги по госпрограмме! Долги от 200т.р. Законно по ФЗ127. 0 проигранных дел. Консультация 0₽. Сохраню ипотеку. Узнать больше Банкротство влечет негативные последствия, в том числе ограничения на получение кредита и повторное банкротство в течение пяти лет. Предварительно обратитесь к своему кредитору и в МФЦ. #реклама spishy-dolg.ru О рекламодателе

2
🤔 Чем отличается BacktimeTable от Backtime? 1. BacktimeTable может быть структурой данных или таблицей, используемой для хранения промежуточных результатов в задаче обратного отсчёта или обработки данных. 2. Backtime часто означает сам процесс обратного отсчёта или времени ожидания. 3. Различие зависит от контекста: таблица — для хранения, backtime — для логики. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
147
3
Боевые роботы — тактическая RPG в стиле sci-fi! Присоединяйся к битве роботов — начни свою мех-легенду уже сейчас! Узнать бол
Боевые роботы — тактическая RPG в стиле sci-fi! Присоединяйся к битве роботов — начни свою мех-легенду уже сейчас! Узнать больше #реклама 16+ yandex.ru О рекламодателе
217
4
🤔 В чем разница кэширования, кодирования, шифрования? 1. Кэширование: - Сохранение данных для быстрого повторного доступа, уменьшая время загрузки и нагрузку на сервер. - Пример: сохранение веб-страницы в браузере. 2. Кодирование: - Преобразование данных в другой формат для удобства передачи или совместимости. - Пример: Base64 для передачи бинарных данных через текстовые протоколы. 3. Шифрование: - Защита данных с использованием ключей, чтобы их мог прочитать только авторизованный получатель. - Пример: AES или RSA для передачи конфиденциальной информации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
254
5
Хочешь начать карьеру в ИТ на оплачиваемой стажировке? Присоединяйся к ИТ-лагерю Т1 для студентов вузов технических и ИТ-спец
Хочешь начать карьеру в ИТ на оплачиваемой стажировке? Присоединяйся к ИТ-лагерю Т1 для студентов вузов технических и ИТ-специальностей. Теперь в обновлённом формате: ещё больше практики, доступ к платформам Т1, а участие — оплачивается и оформляется как стажировка. За 2,5 месяца вместе с проектной командой ты пройдешь полный цикл создания ИТ-продукта: от идеи до разработки прототипа и финальной защиты. Превратить идею в проект помогут мастер-классы, общение с экспертами и погружение в процессы Т1. Направления подготовки: ✅ ручное тестирование; ✅ прикладное администрирование (DevOps); ✅ системный анализ; ✅ фронтенд-разработка (React); ✅ бэкэнд-разработка (Java). Подай заявку до 30 июня! Старт — в июле. Узнать больше #реклама 16+ career.t1.ru О рекламодателе
254
6
🤔 Расскажи про полиморфизм Полиморфизм — это концепция ООП, которая позволяет объектам разных классов обрабатывать одинаковые сообщения или методы по-разному. Полиморфизм позволяет использовать общий интерфейс для взаимодействия с объектами разных типов, не зная их конкретный класс. Он облегчает расширение и поддержку кода, делая его более гибким и удобным для добавления новых классов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
246
7
🤔 Что такое namespaces Namespaces в PHP — это способ организации кода для предотвращения конфликтов имен между классами, функциями и константами. Использование пространства имен позволяет создать уникальные идентификаторы, чтобы избежать пересечений между именами в крупных проектах или при использовании сторонних библиотек. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
293
8
🤔 Что такое абстрактный класс? Абстрактный класс — это класс, который не может быть создан как объект и служит для того, чтобы задавать общие свойства и методы для классов-наследников. Он может содержать как абстрактные, так и конкретные методы с реализацией. Наследники обязаны реализовать все абстрактные методы родительского класса. Абстрактные классы полезны, когда требуется частичная реализация с обязательной реализацией некоторых методов в дочерних классах. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
303
9
🤔 В чем отличие адаптера от декоратора? Это структурные паттерны проектирования, которые используются в объектно-ориентированном программировании для решения различных задач по структурированию классов и объектов. Несмотря на то, что оба паттерна оборачивают другие объекты, их цели и способы применения различаются. 🚩Адаптер (Adapter) Преобразовать интерфейс одного класса в интерфейс другого класса, который ожидают клиенты. Адаптер позволяет классам с несовместимыми интерфейсами работать вместе. Адаптер реализует интерфейс, который должен быть представлен клиенту, и перенаправляет вызовы клиента к объекту с другим интерфейсом. Важно, что адаптер изменяет интерфейс взаимодействия, но не добавляет новую функциональность. Вы разрабатываете приложение, которое должно использовать существующую библиотеку классов, интерфейсы которой не совместимы с остальной частью вашего приложения. Создав адаптер для этих классов, вы можете интегрировать библиотеку без изменения её кода или кода приложения. 🚩Декоратор (Decorator) Динамически добавить новую функциональность объекту. В отличие от наследования, декораторы предоставляют гибкий способ расширения функциональности объекта во время выполнения. Декоратор оборачивает исходный объект, предоставляя дополнительное поведение. Он имеет тот же базовый интерфейс, что и оборачиваемый объект, что позволяет использовать декораторы взаимозаменяемо с исходными объектами. Вы разрабатываете систему уведомлений и хотите добавить возможность логирования или шифрования сообщений. Создав декораторы для базового класса отправки сообщений, вы можете легко добавить новую функциональность, обернув базовый объект отправки в один или несколько декораторов. 🚩Отличия 🟠Цель применения Адаптер используется для обеспечения совместимости между различными интерфейсами, позволяя объектам с несовместимыми интерфейсами работать вместе. Декоратор добавляет новую функциональность объектам, не изменяя их интерфейсы. 🟠Изменение интерфейса Адаптер изменяет интерфейс объекта для совместимости с другим интерфейсом. Декоратор не изменяет интерфейс, но добавляет новое поведение, сохраняя при этом оригинальный интерфейс объекта. 🟠Добавление функциональности Декораторы предназначены для добавления новой функциональности объектам. Адаптеры не добавляют новую функциональность; их основная задача — обеспечить работу существующей функциональности через другой интерфейс. Ставь 👍 и забирай 📚 Базу знаний
298
10
🤔 В чём преимущество hash-индекса и btree-индекса? 1. Hash-индекс: • Быстрый доступ для равенств (=) и точных запросов. • Не подходит для диапазонных запросов. 2. B-Tree индекс: • Оптимален для диапазонных запросов и сортировки. • Поддерживает равенства и сравнения (<, >). • Медленнее hash-индекса для точного поиска. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
317
11
🤔 Что такое горизонтальное шардирование? Горизонтальное шардирование разделяет данные на отдельные шарды по строкам, распределяя их между несколькими серверами. Это позволяет увеличивать масштаб за счёт добавления новых серверов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
344
12
👨👨👨👨👨👨👨👨👨👨 Каналы с IT вакансиями и стажировками Подписывайся и забирай свой оффер 🤘 1. Стажировки и вакансии по Р
👨👨👨👨👨👨👨👨👨👨 Каналы с IT вакансиями и стажировками Подписывайся и забирай свой оффер 🤘 1. Стажировки и вакансии по России и миру 2. IT вакансии по СНГ 3. IT стажировки по СНГ 4. ИИ-ассистент для автооткликов 5. DIGITAL и IT стажировки и вакансии 6. IT стажировки в топовых компаниях мира 7. Удалённые IT вакансии и стажировки 8. Python вакансии и стажировки 9. БИГТЕХ вакансии и стажировки 10. Design вакансии и стажировки 11. QA вакансии и стажировки 12. Junior вакансии и стажировки 13. Frontend вакансии и вопросы собесов 14. Вакансии и стажировки для аналитиков 15. Вакансии в русских стартапах за границей 16. Вакансии и стажировки для DevOps 17. Вакансии, которых нет на ХХ.РУ
345
13
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по тематикам и регионам • Умный подбор каналов • Гибкие модели оплаты (CPC и CPV) Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе
253
14
🤔 Что считается хорошо написанным Task`ом? Хорошо написанный Task (задача) должен быть понятным, конкретным и выполнимым. Если задача написана размыто, разработчик потратит больше времени на уточнение деталей, а не на саму работу. 🚩Основные принципы хорошего Task'а 🟠Чёткое и понятное название Плохо: Исправить баг (какой баг? где?) Хорошо: Исправить ошибку расчёта скидки при оформлении заказа 🟠Описание должно отвечать на 3 вопроса: Что нужно сделать? (конкретные действия) Зачем это нужно? (какая проблема решается) Как это проверить? (критерии выполнения) 🟠Минимум абстракции, максимум конкретики Плохо: Добавить авторизацию на сайт Хорошо: Добавить авторизацию через Google OAuth 2.0 для пользователей, чтобы они могли входить через Google-аккаунт 🟠Разбивать задачи на подзадачи (если задача сложная) Например, если задача "Реализовать корзину покупок", то лучше разбить её на: Добавление товаров в корзину Расчёт итоговой суммы Удаление товаров из корзины Оформление заказа 🟠Указывать требования (технические детали, ссылки, макеты, API, форматы данных) Если задача связана с API → указываем эндпоинты. Если UI → прикладываем макеты (Figma, Zeplin). Если есть примеры → добавляем скриншоты. 🟠Добавлять критерии выполнения (Definition of Done, DoD) Плохо: Сделать фильтр по цене Хорошо: Фильтр по цене должен работать в диапазоне от 0 до 100 000, быть интерактивным (ползунок), без перезагрузки страницы. Ставь 👍 и забирай 📚 Базу знаний
320
15
🤔 По какому принципу объединяются и разделяются методы в интерфейсах? Методы в интерфейсах группируются по роли или контракту, то есть: - Каждый интерфейс должен описывать конкретное поведение (например, Serializable, Renderable). - Принцип разделения интерфейса (Interface Segregation Principle, SOLID) — лучше несколько небольших интерфейсов, чем один громоздкий. - Интерфейс отражает намерение: что объект умеет делать, а не как он это делает. Это упрощает поддержку, повторное использование и тестирование кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
361
16
🤔 Структуры данных в программировании какие знаешь? Структуры данных — это способы хранения и организации данных в памяти компьютера. Они помогают эффективно управлять данными и выбирать оптимальные алгоритмы. 🚩Основные структуры данных 🟠Массив (Array) Упорядоченная коллекция элементов, доступ к которым осуществляется по индексу. Когда нужно быстро получать элементы по индексу. Доступ: O(1) Поиск: O(n) Вставка/Удаление: O(n) (из-за необходимости сдвига элементов) $numbers = [10, 20, 30, 40]; echo $numbers[2]; // 30 🟠Связанный список (Linked List) Элементы (узлы) хранят ссылку на следующий (а иногда и на предыдущий) элемент. Когда часто вставляете/удаляете элементы (без затрат на сдвиг). Доступ: O(n) Вставка/Удаление: O(1) (если известен указатель) class Node { public int $data; public ?Node $next; public function __construct(int $data) { $this->data = $data; $this->next = null; } } 🟠Стек (Stack) Структура LIFO (Last In, First Out). Элементы добавляются и удаляются только с одного конца. Для обратного прохода, отмены операций, рекурсии. Вставка/Удаление: O(1) Доступ: O(n) $stack = new SplStack(); $stack->push(1); $stack->push(2); echo $stack->pop(); // 2 (удаляется последний добавленный) 🟠Очередь (Queue) Структура FIFO (First In, First Out). Первым зашёл – первым вышел. Когда элементы должны обрабатываться по порядку (например, задачи в принтере). Вставка/Удаление: O(1) $queue = new SplQueue(); $queue->enqueue(1); $queue->enqueue(2); echo $queue->dequeue(); // 1 (удаляется первый добавленный) 🟠Хэш-таблица (Hash Table) / Ассоциативный массив Хранит пары ключ → значение, обеспечивает быстрый доступ по ключу. Когда нужен быстрый поиск и хранение пар ключ-значение. Доступ/Поиск: O(1) $hashTable = [ "name" => "Alice", "age" => 25 ]; echo $hashTable["name"]; // Alice 🟠Дерево (Tree) Иерархическая структура, где каждый узел может иметь несколько дочерних. Когда важны иерархии (например, файловые системы, база данных). Виды Двоичное дерево (Binary Tree) – у каждого узла до 2 детей. Двоичное дерево поиска (BST) – левый потомок меньше, правый больше. B-дерево – используется в базах данных. Trie (Префиксное дерево) – для хранения строк, часто в поисковых движках. class TreeNode { public int $value; public ?TreeNode $left = null; public ?TreeNode $right = null; public function __construct(int $value) { $this->value = $value; } } 🟠Граф (Graph) Набор вершин (узлов) и рёбер (связей между узлами). Для моделирования сетей, карт, социальных графов. Типы графов Ориентированный (направленный) / Неориентированный Взвешенный / Невзвешенный Ациклический (DAG) $graph = [ "A" => ["B", "C"], "B" => ["A", "D", "E"], "C" => ["A", "F"], "D" => ["B"], "E" => ["B", "F"], "F" => ["C", "E"] ]; Ставь 👍 и забирай 📚 Базу знаний
243
17
Аренда VPS/VDS-сервера. Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес.
Аренда VPS/VDS-сервера. Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес. Преимущества аренды: - Выделенные ресурсы без переплаты; - KVM-виртуализация; - Быстрые NVMe SSD; - Соответствие 152-ФЗ, PCI DSS; - Бесплатная защита от DDoS; - Управление через панель, API и Terraform; - Техподдержка 24/7. Запустите сервер за несколько минут! Попробовать #реклама 16+ selectel.ru О рекламодателе
272
18
🤔 Что такое traits? Traits — это механизм PHP, который позволяет использовать повторно код в разных классах, без необходимости наследования. Traits содержат методы, которые можно внедрить в классы, что позволяет избегать дублирования кода. Они особенно полезны для разделения функциональности между классами, которые не могут наследоваться напрямую. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
359
19
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе
274
20
🤔 Что делает бэк-слеш перед глобальными функциями? В PHP бэкслеш (\) перед именем функции или класса указывает, что мы обращаемся к глобальному пространству имён. Это важно, если код находится внутри namespace. 🚩Почему это важно? 🟠Пространства имён могут переопределять глобальные функции Если внутри namespace есть функция с таким же именем, то PHP будет искать её внутри пространства имён, а не в глобальном пространстве. namespace App; function strlen($str) { return "Фейковая длина строки"; } echo strlen("Hello!"); // Выведет: "Фейковая длина строки" 🟠Бэкслеш заставляет PHP искать функцию в глобальном пространстве Пример использования \ для вызова стандартной функции PHP namespace App; function strlen($str) { return "Фейковая длина строки"; } echo \strlen("Hello!"); // Выведет: 6 (из стандартной библиотеки PHP) 🟠Используется для ускорения работы кода PHP не будет искать функцию внутри namespace, а сразу возьмёт глобальную версию. Это немного ускоряет выполнение. namespace App; $t1 = microtime(true); for ($i = 0; $i < 1000000; $i++) { time(); // PHP ищет в namespace, потом в глобальном } $t2 = microtime(true); echo "Обычный вызов: " . ($t2 - $t1) . " секунд\n"; $t1 = microtime(true); for ($i = 0; $i < 1000000; $i++) { \time(); // PHP сразу берёт глобальную функцию } $t2 = microtime(true); echo "С бэкслешем: " . ($t2 - $t1) . " секунд\n"; Ставь 👍 и забирай 📚 Базу знаний
415