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

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

رفتن به کانال در Telegram
2 369
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-57 روز
-1630 روز
جذب مشترکین
ژوئن '26
ژوئن '26
+5
در 0 کانال‌ها
مه '26
+23
در 0 کانال‌ها
Get PRO
آوریل '26
+21
در 0 کانال‌ها
Get PRO
مارس '26
+27
در 0 کانال‌ها
Get PRO
فوریه '26
+47
در 0 کانال‌ها
Get PRO
ژانویه '26
+42
در 0 کانال‌ها
Get PRO
دسامبر '25
+33
در 0 کانال‌ها
Get PRO
نوامبر '25
+70
در 0 کانال‌ها
Get PRO
اکتبر '25
+44
در 0 کانال‌ها
Get PRO
سپتامبر '25
+46
در 0 کانال‌ها
Get PRO
اوت '25
+46
در 0 کانال‌ها
Get PRO
ژوئیه '25
+52
در 0 کانال‌ها
Get PRO
ژوئن '25
+52
در 0 کانال‌ها
Get PRO
مه '25
+58
در 0 کانال‌ها
Get PRO
آوریل '25
+82
در 0 کانال‌ها
Get PRO
مارس '25
+132
در 3 کانال‌ها
Get PRO
فوریه '25
+107
در 2 کانال‌ها
Get PRO
ژانویه '25
+125
در 54 کانال‌ها
Get PRO
دسامبر '24
+56
در 1 کانال‌ها
Get PRO
نوامبر '24
+69
در 1 کانال‌ها
Get PRO
اکتبر '24
+186
در 45 کانال‌ها
Get PRO
سپتامبر '24
+247
در 249 کانال‌ها
Get PRO
اوت '24
+103
در 0 کانال‌ها
Get PRO
ژوئیه '24
+200
در 54 کانال‌ها
Get PRO
ژوئن '24
+707
در 244 کانال‌ها
Get PRO
مه '24
+698
در 189 کانال‌ها
Get PRO
آوریل '24
+471
در 23 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
04 ژوئن+1
03 ژوئن+2
02 ژوئن0
01 ژوئن+2
پست‌های کانال
🤔 Что такое абстрактный класс? Абстрактный класс — это класс, который не может быть создан как объект и служит для того, чтобы задавать общие свойства и методы для классов-наследников. Он может содержать как абстрактные, так и конкретные методы с реализацией. Наследники обязаны реализовать все абстрактные методы родительского класса. Абстрактные классы полезны, когда требуется частичная реализация с обязательной реализацией некоторых методов в дочерних классах. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

2
🤔 В чем отличие адаптера от декоратора? Это структурные паттерны проектирования, которые используются в объектно-ориентированном программировании для решения различных задач по структурированию классов и объектов. Несмотря на то, что оба паттерна оборачивают другие объекты, их цели и способы применения различаются. 🚩Адаптер (Adapter) Преобразовать интерфейс одного класса в интерфейс другого класса, который ожидают клиенты. Адаптер позволяет классам с несовместимыми интерфейсами работать вместе. Адаптер реализует интерфейс, который должен быть представлен клиенту, и перенаправляет вызовы клиента к объекту с другим интерфейсом. Важно, что адаптер изменяет интерфейс взаимодействия, но не добавляет новую функциональность. Вы разрабатываете приложение, которое должно использовать существующую библиотеку классов, интерфейсы которой не совместимы с остальной частью вашего приложения. Создав адаптер для этих классов, вы можете интегрировать библиотеку без изменения её кода или кода приложения. 🚩Декоратор (Decorator) Динамически добавить новую функциональность объекту. В отличие от наследования, декораторы предоставляют гибкий способ расширения функциональности объекта во время выполнения. Декоратор оборачивает исходный объект, предоставляя дополнительное поведение. Он имеет тот же базовый интерфейс, что и оборачиваемый объект, что позволяет использовать декораторы взаимозаменяемо с исходными объектами. Вы разрабатываете систему уведомлений и хотите добавить возможность логирования или шифрования сообщений. Создав декораторы для базового класса отправки сообщений, вы можете легко добавить новую функциональность, обернув базовый объект отправки в один или несколько декораторов. 🚩Отличия 🟠Цель применения Адаптер используется для обеспечения совместимости между различными интерфейсами, позволяя объектам с несовместимыми интерфейсами работать вместе. Декоратор добавляет новую функциональность объектам, не изменяя их интерфейсы. 🟠Изменение интерфейса Адаптер изменяет интерфейс объекта для совместимости с другим интерфейсом. Декоратор не изменяет интерфейс, но добавляет новое поведение, сохраняя при этом оригинальный интерфейс объекта. 🟠Добавление функциональности Декораторы предназначены для добавления новой функциональности объектам. Адаптеры не добавляют новую функциональность; их основная задача — обеспечить работу существующей функциональности через другой интерфейс. Ставь 👍 и забирай 📚 Базу знаний
176
3
🤔 В чём преимущество hash-индекса и btree-индекса? 1. Hash-индекс: • Быстрый доступ для равенств (=) и точных запросов. • Не подходит для диапазонных запросов. 2. B-Tree индекс: • Оптимален для диапазонных запросов и сортировки. • Поддерживает равенства и сравнения (<, >). • Медленнее hash-индекса для точного поиска. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
241
4
🤔 Что такое горизонтальное шардирование? Горизонтальное шардирование разделяет данные на отдельные шарды по строкам, распределяя их между несколькими серверами. Это позволяет увеличивать масштаб за счёт добавления новых серверов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
273
5
👨👨👨👨👨👨👨👨👨👨 Каналы с 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. Вакансии, которых нет на ХХ.РУ
278
6
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по тематикам и регионам • Умный подбор каналов • Гибкие модели оплаты (CPC и CPV) Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе
253
7
🤔 Что считается хорошо написанным Task`ом? Хорошо написанный Task (задача) должен быть понятным, конкретным и выполнимым. Если задача написана размыто, разработчик потратит больше времени на уточнение деталей, а не на саму работу. 🚩Основные принципы хорошего Task'а 🟠Чёткое и понятное название Плохо: Исправить баг (какой баг? где?) Хорошо: Исправить ошибку расчёта скидки при оформлении заказа 🟠Описание должно отвечать на 3 вопроса: Что нужно сделать? (конкретные действия) Зачем это нужно? (какая проблема решается) Как это проверить? (критерии выполнения) 🟠Минимум абстракции, максимум конкретики Плохо: Добавить авторизацию на сайт Хорошо: Добавить авторизацию через Google OAuth 2.0 для пользователей, чтобы они могли входить через Google-аккаунт 🟠Разбивать задачи на подзадачи (если задача сложная) Например, если задача "Реализовать корзину покупок", то лучше разбить её на: Добавление товаров в корзину Расчёт итоговой суммы Удаление товаров из корзины Оформление заказа 🟠Указывать требования (технические детали, ссылки, макеты, API, форматы данных) Если задача связана с API → указываем эндпоинты. Если UI → прикладываем макеты (Figma, Zeplin). Если есть примеры → добавляем скриншоты. 🟠Добавлять критерии выполнения (Definition of Done, DoD) Плохо: Сделать фильтр по цене Хорошо: Фильтр по цене должен работать в диапазоне от 0 до 100 000, быть интерактивным (ползунок), без перезагрузки страницы. Ставь 👍 и забирай 📚 Базу знаний
259
8
🤔 По какому принципу объединяются и разделяются методы в интерфейсах? Методы в интерфейсах группируются по роли или контракту, то есть: - Каждый интерфейс должен описывать конкретное поведение (например, Serializable, Renderable). - Принцип разделения интерфейса (Interface Segregation Principle, SOLID) — лучше несколько небольших интерфейсов, чем один громоздкий. - Интерфейс отражает намерение: что объект умеет делать, а не как он это делает. Это упрощает поддержку, повторное использование и тестирование кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
305
9
🤔 Структуры данных в программировании какие знаешь? Структуры данных — это способы хранения и организации данных в памяти компьютера. Они помогают эффективно управлять данными и выбирать оптимальные алгоритмы. 🚩Основные структуры данных 🟠Массив (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"] ]; Ставь 👍 и забирай 📚 Базу знаний
214
10
Аренда 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
11
🤔 Что такое traits? Traits — это механизм PHP, который позволяет использовать повторно код в разных классах, без необходимости наследования. Traits содержат методы, которые можно внедрить в классы, что позволяет избегать дублирования кода. Они особенно полезны для разделения функциональности между классами, которые не могут наследоваться напрямую. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
306
12
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе
274
13
🤔 Что делает бэк-слеш перед глобальными функциями? В 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"; Ставь 👍 и забирай 📚 Базу знаний
335
14
Аренда 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 О рекламодателе
0
15
ИН:Ритейл 21 мая приглашаем всех, кто определяет стратегию развития и маркетинга бизнесов в ритейле, обсудить ситуацию на рын
ИН:Ритейл 21 мая приглашаем всех, кто определяет стратегию развития и маркетинга бизнесов в ритейле, обсудить ситуацию на рынке в новых условиях, вызовы 2026 года и перспективы. Отдельный фокус — на технологиях и инструментах, которые помогают бизнесу отвечать на новые вызовы: как меняется эффективность привлечения, как растёт измеримость рекламных каналов и какую роль играют новые форматы в маркетинговом миксе. Встречаемся 21 мая в Москве. Для тех, кто не сможет приехать, организуем онлайн-трансляцию. Мероприятие бесплатное, нужно только зарегистрироваться. Зарегистрироваться #реклама yandex.ru О рекламодателе
0
16
Главный навык на ближайшие годы — ВАЙБ-КОДИНГ ИИ уже пишет код, чинит баги, генерирует тесты, документацию и помогает запуска
Главный навык на ближайшие годы — ВАЙБ-КОДИНГ ИИ уже пишет код, чинит баги, генерирует тесты, документацию и помогает запускать продукты быстрее, чем это делали классические команды разработки. И это уже не "будущее когда-нибудь", а реальность, которая меняет рынок уже сегодня И те, кто научится вайбкодить сейчас, будут увереннее конкурировать на рынке и зарабатывать больше тех, кто по-прежнему делает всё вручную. Стартовать с нуля поможет канал Вайб-кодинг. Там ребята круглосуточно мониторят более 320 российских и зарубежных источников и публикуют только главное: релизы, инструменты, гайды, курсы и практические кейсы. Подписывайтесь, нас уже 30 тысяч: @vibecoding_tg
0
17
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попр
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
0
18
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попр
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
0
19
🤔 Какие бывают области видимости? Область видимости (или видимость) определяет, где в коде можно получить доступ к переменным, функциям и другим объектам. В PHP есть несколько видов областей видимости, которые контролируют доступность этих элементов в разных частях программы. 🚩Основные области видимости 🟠Локальная область видимости Переменные, объявленные внутри функции, имеют локальную область видимости и доступны только внутри этой функции. <?php function test() { $localVar = "I'm local"; echo $localVar; // Выведет "I'm local" } test(); echo $localVar; // Ошибка: переменная не найдена ?> 🟠Глобальная область видимости Переменные, объявленные вне функций и классов, имеют глобальную область видимости и доступны везде в скрипте, кроме внутренних областей видимости (например, внутри функций), если не использовать ключевое слово global. <?php $globalVar = "I'm global"; function test() { global $globalVar; echo $globalVar; // Выведет "I'm global" } test(); ?> 🟠Область видимости функций и методов Переменные, объявленные внутри функции или метода класса, имеют свою локальную область видимости и не видны за её пределами. <?php class Test { public function method() { $localVar = "I'm local in method"; echo $localVar; // Выведет "I'm local in method" } } $test = new Test(); $test->method(); echo $localVar; // Ошибка: переменная не найдена ?> 🟠Область видимости классов Публичная (public) Публичные свойства и методы доступны отовсюду: как внутри класса, так и вне его. <?php class Test { public $publicVar = "I'm public"; public function publicMethod() { echo $this->publicVar; } } $test = new Test(); echo $test->publicVar; // Доступно и выведет "I'm public" $test->publicMethod(); // Доступно и выведет "I'm public" ?> 🟠Защищённая (protected) Защищённые свойства и методы доступны только внутри класса и его наследников. <?php class Base { protected $protectedVar = "I'm protected"; protected function protectedMethod() { echo $this->protectedVar; } } class Derived extends Base { public function accessProtected() { echo $this->protectedVar; // Доступно $this->protectedMethod(); // Доступно } } $derived = new Derived(); $derived->accessProtected(); // Выведет "I'm protected" // echo $derived->protectedVar; // Ошибка: доступ запрещен // $derived->protectedMethod(); // Ошибка: доступ запрещен ?> 🟠Приватная (private) Приватные свойства и методы доступны только внутри класса, в котором они объявлены, и недоступны в наследниках. <?php class Test { private $privateVar = "I'm private"; private function privateMethod() { echo $this->privateVar; } public function accessPrivate() { $this->privateMethod(); // Доступно } } $test = new Test(); $test->accessPrivate(); // Выведет "I'm private" // echo $test->privateVar; // Ошибка: доступ запрещен // $test->privateMethod(); // Ошибка: доступ запрещен ?> 🟠Локальная область видимости Переменные доступны только внутри функции или метода, где они объявлены. 🟠Глобальная область видимости Переменные доступны везде в скрипте, кроме внутренних областей видимости, если не используется global. 🟠Публичная область видимости Свойства и методы доступны отовсюду. 🟠Защищённая область видимости Свойства и методы доступны только внутри класса и его наследников. 🟠Приватная область видимости Свойства и методы доступны только внутри класса, в котором они объявлены. Ставь 👍 и забирай 📚 Базу знаний
0
20
🤔 Что такое поведение copy-on-write? Это механизм оптимизации памяти, при котором копия объекта создаётся только в случае изменения исходного объекта. До изменений объекты разделяют один и тот же адрес в памяти. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
0