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

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

Open in Telegram

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

Show more
2 341
Subscribers
-124 hours
-47 days
-2430 days
Posts Archive
🤔 Какой функцией в PHP можно заменить символы в строке?
Anonymous voting

📌 Что такое транзакция? 💬 Спрашивают в 40% собеседований Транзакция в контексте баз данных — это последовательность операций с данными, которые рассматриваются как единое целое. Основная цель — обеспечить надежное выполнение группы операций, так чтобы база данных оставалась в согласованном состоянии даже в случае возникновения ошибок или сбоев. Подчиняются принципу ACID, который обеспечивает: ➕ Атомарность (Atomicity): Выполняется полностью или не выполняется вовсе. Если какая-либо часть транзакции не может быть завершена, то все её действия откатываются (отменяются), и система возвращается к состоянию, которое было до начала транзакции. ➕ Согласованность (Consistency): Переводит базу данных из одного согласованного состояния в другое. Это означает, что все правила целостности данных соблюдаются. ➕ Изолированность (Isolation): Не видит промежуточных состояний других транзакций. Это предотвращает возможные проблемы, такие как "грязное чтение" или "неповторяемое чтение". ➕ Долговечность (Durability): После ее завершения (commit) её результаты сохраняются в базе данных независимо от последующих сбоев системы. Они используются для выполнения различных задач, таких как перевод средств между банковскими счетами, обновление инвентаря в системах управления товарами, изменения в системах управления пользователями и многие другие операции, требующие гарантий целостности данных. 🤔 Пример:
BEGIN TRANSACTION;

UPDATE БанковскиеСчета SET Баланс = Баланс - 100 WHERE НомерСчета = '123456';
UPDATE БанковскиеСчета SET Баланс = Баланс + 100 WHERE НомерСчета = '654321';

COMMIT;
В этом примере производится перевод средств между двумя банковскими счетами в рамках одной транзакции. Если обновление баланса на любом из счетов не может быть выполнено по любой причине (например, из-за сбоя в системе), транзакция будет отменена, и база данных вернется к исходному состоянию, тем самым гарантируя целостность данных. 🤔 Итог: Транзакция — это механизм, который позволяет группировать несколько операций с базой данных в одно целое для обеспечения ACID-гарантий, что критически важно для поддержания целостности и надежности данных. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какие типы данных есть в PHP?
Anonymous voting

📌 Расскажи о принципах SOLID? 💬 Спрашивают в 40% собеседований Принципы SOLID — это набор из пяти основных принципов ООП и проектирования, предложенных Робертом Мартином. Эти принципы помогают разработчикам создавать системы, которые легко поддаются масштабированию, понятны, удобны в поддержке и расширении. Применение их способствует снижению зависимостей между модулями программы, упрощает тестирование и обновление. 🤔 S - Принцип единственной ответственности (Single Responsibility Principle) Он утверждает, что класс должен иметь только одну причину для изменения. Другими словами, класс должен выполнять только одну задачу или иметь одну область ответственности. Это упрощает понимание класса, его тестирование и поддержку. 🤔 O - Принцип открытости/закрытости (Open/Closed Principle) Согласно этому ему, программные сущности (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для изменения. Это означает, что можно добавлять новые функциональности не изменяя существующий код, что уменьшает вероятность внесения ошибок в уже проверенный и работающий код. 🤔 L - Принцип подстановки Барбары Лисков (Liskov Substitution Principle) Этот принцип формулируется как: объекты в программе должны быть заменяемы на экземпляры их подтипов без изменения правильности выполнения программы. Проще говоря, производный класс должен дополнять, а не заменять поведение базового класса. 🤔 I - Принцип разделения интерфейса (Interface Segregation Principle) Принцип разделения интерфейса гласит, что клиенты не должны быть вынуждены реализовывать интерфейсы, которые они не используют. Это означает, что лучше иметь множество специализированных интерфейсов, чем один универсальный. 🤔 D - Принцип инверсии зависимостей (Dependency Inversion Principle) Принцип инверсии зависимостей состоит в том, что модули высокого уровня не должны зависеть от модулей низкого уровня. Оба типа модулей должны зависеть от абстракций. Кроме того, абстракции не должны зависеть от деталей; детали должны зависеть от абстракций. Этот принцип направлен на уменьшение зависимостей между модулями кода. 🤔 Итог: Применение принципов SOLID делает систему более гибкой, понятной и поддерживаемой. Каждый принцип помогает решать определенные проблемы проектирования и поддержки программного обеспечения, обеспечивая тем самым создание качественного и долговечного продукта. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤩 С чего начать свой путь в IT? И какой самый популярный язык на данный момент? 🫢 Самый популярный язык программирования на
🤩 С чего начать свой путь в IT? И какой самый популярный язык на данный момент? 🫢 Самый популярный язык программирования на сегодня, по данным TIOBE, — Python. Он держится в лидерах уже пять лет. 🤯 На нем написаны: Blender, Uber, World of Tanks, YouTube. 🙏 Даже сам Илон Маск, а точнее, его компания NASA использует этот язык в научных исследованиях Не изучая Python, ты упускаешь возможность быть востребованным, поэтому подписывайся

🤔 Какой из следующих методов используется для проверки, является ли переменная массивом в PHP?
Anonymous voting

🧑‍💻 Если твой английский позволяет ответить только на вопрос "Do you speak English", то с этим нужно что-то делать, будучи программистом. 🫤 Ты в курсе, что ... - говорят по-английски — 20% из всех людей. - Большое кол-во IT документации написано на английском. Хочешь понимать код лучше? Изучи язык, который используется в его основе. 📕 На нашем канале ты постепенно будешь набираться опыта, в этом тебе помогут: - Тесты для изучения английского: проверьте свои знания на практике. - Английский через мемы: учите язык весело и с интересом. - Шпаргалки для повторения: закрепите знания быстро и эффективно. - Английский сленг программиста: станьте настоящим профи в коммуникации. 🔥 Маленький шаг в изучении иностранного откроет перед тобой большие возможности будущего специалиста и значительно повысит твое зп. 🌸 Подпишись, do it!

📌Что такое абстрактный класс? 💬 Спрашивают в 47% собеседований Абстрактный класс — это класс в ООП, который не может быть инстанциирован напрямую, то есть нельзя создать объект абстрактного класса используя оператор new. Они предназначены для того, чтобы служить базой для других классов, которые должны реализовать определенные методы, заданные в нем. ➕ Основная цель — обеспечение общего определения класса, которое может быть использовано в качестве основы для создания производных классов. Производные классы должны реализовать все абстрактные методы абстрактного родительского класса, но при этом они могут также иметь дополнительные методы и свойства или переопределять существующие. Часто содержат абстрактные методы — методы, объявленные в абстрактном классе, но не имеющие реализации в нём. Реализация этих методов должна быть обеспечена в производных классах. Это позволяет им задавать форму и обязательные методы для всех своих наследников, не определяя при этом конкретную реализацию этих методов. Могут также содержать полностью реализованные методы, конструкторы, деструкторы и свойства, которые могут быть использованы или переопределены в производных классах. 🤔 Пример:
abstract class Животное {
    public function ест() {
        echo "Это животное ест";
    }

    abstract public function издаетЗвук();
}

class Собака extends Животное {
    public function издаетЗвук() {
        echo "Гав";
    }
}

// $животное = new Животное(); // Ошибка: нельзя инстанциировать абстрактный класс
$собака = new Собака();
$собака->ест(); // Вывод: Это животное ест
$собака->издаетЗвук(); // Вывод: Гав
В этом примере, Животное — это абстрактный класс с абстрактным методом издаетЗвук и обычным методом ест. Класс Собака наследует класс Животное и обязан реализовать абстрактный метод издаетЗвук. Создать экземпляр класса Животное напрямую нельзя, но можно использовать его для создания более конкретных классов животных, таких как Собака. 🤔 Итог: Абстрактный класс определяет шаблон для своих наследников и может задавать некоторые общие функции, которые будут использоваться или расширяться этими наследниками. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какой из следующих методов используется для преобразования массива в строку JSON в PHP?
Anonymous voting

🤣 "Зачем программисту дизайн? Я и без этого нормально справляюсь" - говорят те, кто потом ищет курсы по Frontend. 👨‍💻 Тебе
🤣 "Зачем программисту дизайн? Я и без этого нормально справляюсь" - говорят те, кто потом ищет курсы по Frontend. 👨‍💻 Тебе (будущему IT специалисту) рано или поздно придется познавать дизайн и оформление. Начни с приложения Figma, изучая его, ты повысишь качество своей работы через визуальные эффекты и оформление. 🤯 На канале Figma Design мы собираем основные макеты и плагины, которые пригодятся тебе на всех этапах изучения. Подписывайся скорей, контент тебя ждет.

📌 Какие паттерны проектирования знаешь? 💬 Спрашивают в 47% собеседований Паттерны проектирования — это проверенные решения типичных проблем, возникающих при разработке программного обеспечения. Они помогают сделать код более модульным, гибким и поддерживаемым. Они делятся на три основные категории в зависимости от их предназначения: 🤔 Порождающие (Creational) Связаны с процессом создания объектов, делая систему более независимой от способа создания, композиции и представления объектов. ➕Абстрактная фабрика (Abstract Factory): предоставляет интерфейс для создания семейств взаимосвязанных или зависимых объектов без указания их конкретных классов. ➕Строитель (Builder): отделяет конструирование сложного объекта от его представления, так что один и тот же процесс конструирования может создавать разные представления. ➕Фабричный метод (Factory Method): определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Фабричный метод позволяет классу делегировать инстанцирование подклассам. ➕Прототип (Prototype): создаёт объекты путём копирования существующего объекта, а не создания нового через конструктор. ➕Одиночка (Singleton): гарантирует, что класс имеет только один экземпляр, и предоставляет к нему глобальную точку доступа. 🤔 Структурные (Structural) Описывают, как объединить объекты и классы в более крупные структуры, сохраняя при этом гибкость и эффективность структур. ➕Адаптер (Adapter): позволяет объектам с несовместимыми интерфейсами работать вместе. ➕Мост (Bridge): разделяет абстракцию и реализацию так, чтобы они могли изменяться независимо. ➕Компоновщик (Composite): позволяет группировать объекты в древовидные структуры для представления иерархий часть-целое. ➕Декоратор (Decorator): динамически добавляет объектам новые обязанности без изменения их интерфейса. ➕Фасад (Facade): предоставляет упрощённый интерфейс к сложной системе классов, библиотеке или фреймворку. ➕Легковес (Flyweight): используется для уменьшения затрат на создание большого количества мелких похожих объектов. ➕Заместитель (Proxy): предоставляет заменитель или местозаполнитель для другого объекта для контроля доступа к нему. 🤔 Поведенческие (Behavioral) В основном описывают не столько шаблоны объектов или классов, сколько шаблоны взаимодействия между ними. ➕Цепочка обязанностей (Chain of Responsibility): передаёт запросы последовательно по цепочке обработчиков, пока один из них не обработает запрос. ➕Команда (Command): превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций. ➕Интерпретатор (Interpreter): задаёт грамматику для языка и интерпретатор для его грамматики. ➕Итератор (Iterator): предоставляет способ последовательного доступа ко всем элементам агрегата без раскрытия его внутреннего представления. ➕Посредник (Mediator): уменьшает сложность взаимодействия между объектами, введя между ними посредника. ➕Хранитель (Memento): позволяет сохранять и восстанавливать предыдущее состояние объекта без раскрытия деталей его реализации. ➕Наблюдатель (Observer): создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах. ➕Состояние (State): позволяет объекту изменять своё поведение в зависимости от своего состояния. ➕Стратегия (Strategy): определяет семейство алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость. ➕Шаблонный метод (Template Method): определяет скелет алгоритма в методе, перекладывая ответственность за некоторые его шаги на подклассы. ➕Посетитель (Visitor): позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться. 🤔 Итог: Каждый паттерн проектирования решает определённую проблему и может быть применим в различных ситуациях в зависимости от особенностей проекта и требований к нему. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какой из следующих методов используется для добавления элемента в конец массива в PHP?
Anonymous voting

📌 В чём суть абстрактного класса? 💬 Спрашивают в 60% собеседований Абстрактный класс и в ООП в целом — это специальный тип класса, который не может быть инстанциирован напрямую. Это означает, что вы не можете создать объект абстрактного класса используя оператор new напрямую. Суть его заключается в том, чтобы служить основой для других классов, от которых будут создаваться объекты. Используются для определения общего интерфейса и поведения для группы связанных классов. Они позволяют разработчикам определить методы, которые должны быть реализованы во всех наследующих классах, обеспечивая тем самым единообразие и согласованность. Кроме того, они могут содержать реализацию некоторых методов, которые будут наследоваться всеми производными классами, что уменьшает дублирование кода. 🤔 Пример:
abstract class ТранспортноеCредство {
    protected $скорость;

    public function установитьСкорость($скорость) {
        $this->скорость = $скорость;
    }

    abstract public function двигаться();
}

class Автомобиль extends ТранспортноеCредство {
    public function двигаться() {
        echo "Движется на скорости: " . $this->скорость . " км/ч";
    }
}

// $транспорт = new ТранспортноеCредство(); // Ошибка: не может быть инстанциирован
$автомобиль = new Автомобиль();
$автомобиль->установитьСкорость(60);
$автомобиль->двигаться();
В данном примере, этот класс ТранспортноеCредство определяет общее поведение и свойства для всех транспортных средств, такие как установитьСкорость, и требует от наследующих классов реализовать метод двигаться. Абстрактный метод двигаться должен быть реализован в каждом конкретном классе-наследнике, что гарантирует, что все транспортные средства будут иметь способность к движению, но способ реализации этой способности может отличаться в зависимости от типа транспортного средства. 🤔 Итог: Суть абстрактного класса, таким образом, заключается в определении шаблона (или общего поведения) для группы классов, обеспечивая при этом гибкость в реализации специфического поведения в каждом из производных классов. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде. 🧑‍💻 Марк Цукерберг создал первоначальну
🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде. 🧑‍💻 Марк Цукерберг создал первоначальную версию Facebook в одиночку, но для превращения стартапа в глобальную социальную сеть потребовалась мощная команда. 👌 IT мероприятия - одно из тех мест, где можно найти единомышленников в данной нише. 🔥 Подпишись на канал IT события, чтобы не упустить возможность в реализации своего потенциала.

🤔 Какой из следующих методов используется для сериализации переменной в PHP?
Anonymous voting

📌 Чем отличается абстрактный класс от интерфейса? 💬 Спрашивают в 60% собеседований Абстрактный класс и интерфейс - это два механизма, которые используются для достижения абстракции в ООП, но каждый из них играет свою роль и имеет свои особенности. 🤔 Абстрактный класс - не может быть инстанциирован (то есть, вы не можете создать объект этого класса напрямую). Он предназначен для того, чтобы служить базовым классом для других классов. Могут содержать как абстрактные методы (без реализации), так и методы с полной реализацией. Классы, наследующие его, должны реализовать все его абстрактные методы, но могут также переопределять реализованные методы. 🤔Интерфейс представляет собой полностью абстрактный класс, который содержит только абстрактные методы (без реализации) и константы. Используются для определения набора методов, которые класс должен реализовать, не определяя при этом логику выполнения этих методов. Один класс может реализовывать множество интерфейсов, что позволяет обеспечить большую гибкость и множественное наследование. 🤔Основные различия: 1️⃣ Наследование vs. Реализация: Классы наследуют абстрактный класс (extends), но реализуют интерфейс (implements). 2️⃣Методы и свойства: Абстрактные классы могут содержать как абстрактные, так и неабстрактные методы и свойства, в то время как интерфейсы могут содержать только абстрактные методы и константы. 3️⃣Множественное наследование: Класс не может наследовать более одного абстрактного класса, но может реализовывать множество интерфейсов. 4️⃣Конструкторы: Абстрактные классы могут иметь конструкторы, в то время как интерфейсы не могут. 🤔 Абстрактный класс:
abstract class Животное {
    public function дышать() {
        echo "Дышит воздухом";
    }

    abstract public function издаватьЗвук();
}

class Собака extends Животное {
    public function издаватьЗвук() {
        echo "Гав";
    }
}
🤔Интерфейс:
interface Передвигается {
    public function двигаться();
}

class Человек implements Передвигается {
    public function двигаться() {
        echo "Ходит на двух ногах";
    }
}
🤔 Итог: Абстрактный класс используется для определения общего поведения наследников, в то время как интерфейс определяет набор методов, которые должен реализовать класс. Абстрактный класс может быть использован для определения основы, а интерфейсы - для обеспечения гибкой архитектуры через множественное наследование. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какой из следующих методов используется для проверки существования файла в PHP?
Anonymous voting

Как расшифровывается Rest ? Спросят с вероятностью 13% REST расшифровывается как REpresentational State Transfer (Представленческая передача состояния). Это архитектурный стиль для создания сетевых приложений, который определяет набор ограничений и принципов для проектирования и взаимодействия с веб-службами. Основные принципы 1️⃣Клиент-серверная архитектура (Client-Server): Клиент и сервер разделены. Клиенты запрашивают ресурсы, а серверы предоставляют их. Это разделение позволяет независимое развитие клиента и сервера. 2️⃣Отсутствие состояния (Stateless): Каждое взаимодействие между клиентом и сервером не зависит от предыдущих взаимодействий. Вся необходимая информация для выполнения запроса должна быть включена в сам запрос. 3️⃣Кешируемость (Cacheable): Ответы могут быть кешируемыми. Это улучшает производительность, снижая необходимость повторных обращений к серверу для получения одних и тех же данных. 4️⃣Единообразный интерфейс (Uniform Interface): Определяет единообразный способ взаимодействия с ресурсами, независимо от конкретного клиента или сервера. Включает четыре подпринципа: ✅Идентификация ресурсов: Каждый ресурс имеет уникальный идентификатор (обычно URL). ✅Манипуляция ресурсами через представления: Клиенты взаимодействуют с ресурсами, используя их представления (например, JSON, XML). ✅Самоописываемые сообщения: Сообщения содержат всю необходимую информацию для обработки запроса или ответа. ✅Гипермедиа как движок приложения (HATEOAS): Клиенты получают информацию о доступных действиях через гиперссылки в ответах сервера. 5️⃣Слои (Layered System): Архитектура может быть многослойной, где каждый слой имеет свои обязанности и скрывает сложность соседних слоев. 6️⃣Код по требованию (Code on Demand, необязательный): Сервер может передавать исполняемый код клиенту для выполнения. Например, JavaScript для выполнения на стороне клиента. Пример REST RESTful веб-службы взаимодействуют через стандартные HTTP методы: ✅GET: Получить ресурс. ✅POST: Создать новый ресурс. ✅PUT: Обновить существующий ресурс. ✅DELETE: Удалить ресурс. Пример API: 1️⃣Получить список пользователей:
      GET /users
   
Ответ:
      [
       {"id": 1, "name": "Alice"},
       {"id": 2, "name": "Bob"}
   ]
   
2️⃣Получить пользователя по ID:
      GET /users/1
   
Ответ:
      {"id": 1, "name": "Alice"}
   
3️⃣Создать нового пользователя:
      POST /users
   
Тело запроса:
      {"name": "Charlie"}
   
Ответ:
      {"id": 3, "name": "Charlie"}
   
4️⃣Обновить информацию о пользователе:
      PUT /users/1
   
Тело запроса:
      {"name": "Alice Smith"}
   
5️⃣Удалить пользователя:
      DELETE /users/1
   
REST — это способ создания веб-сервисов, где взаимодействие происходит через стандартные HTTP запросы, а данные передаются в различных представлениях. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти к списку 385 вопросов на PHP разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде. 🧑‍💻 Марк Цукерберг создал первоначальну
🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде. 🧑‍💻 Марк Цукерберг создал первоначальную версию Facebook в одиночку, но для превращения стартапа в глобальную социальную сеть потребовалась мощная команда. 👌 IT мероприятия - одно из тех мест, где можно найти единомышленников в данной нише. 🔥 Подпишись на канал IT события, чтобы не упустить возможность в реализации своего потенциала.

🤔 Какой оператор используется для конкатенации строк в PHP?
Anonymous voting

PHP | Вопросы собесов - Statistics & analytics of Telegram channel @easy_php_ru