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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
2 345
مشترکین
+124 ساعت
-47 روز
-2630 روز
آرشیو پست ها
Приведи друга и получи 30 000 ₽ Приведите друга на вакансию программист 1С — получите 30 000 ₽. Сообщите нам о потенциальном
Приведи друга и получи 30 000 ₽ Приведите друга на вакансию программист 1С — получите 30 000 ₽. Сообщите нам о потенциальном кандидате. Когда кандидат будет трудоустроен, мы выплатим вам вознаграждение. Опыт от 3-х лет на full-time. Аккредитованная IT-компания. Удалённая работа. ДМО. Оформление по ТК РФ. Зарплата до 250 000 ₽. Помощь в развитии. Оставьте заявку на сайте Перейти на сайт #реклама career.programstore.ru О рекламодателе

🤔 Что есть иммутабельный объект? Это объект, состояние которого нельзя изменить после его создания. Это означает, что ни одно из свойств объекта не может быть изменено после того, как он был инициализирован. Всякий раз, когда необходимо изменить состояние иммутабельного объекта, вместо изменения текущего объекта создается новый объект с новым состоянием. 🚩ПлюсыБезопасность и предсказуемость Иммутабельные объекты безопасны для использования в многопоточных средах, так как их состояние не может быть изменено после создания, что предотвращает состояние гонки и другие проблемы, связанные с конкурентным доступом. ➕Простота понимания и отладки Так как состояние иммутабельного объекта не изменяется, код, использующий такие объекты, становится более предсказуемым и легче в отладке. ➕Облегчение управления состоянием Иммутабельные объекты упрощают управление состоянием в приложениях, так как можно быть уверенным, что состояние объекта не изменится неожиданным образом. ➕Безопасность при передаче данных Иммутабельные объекты могут безопасно передаваться между различными частями программы или даже между разными системами, так как нет риска, что их состояние будет изменено в процессе передачи.
# Строки являются иммутабельными
s = "hello"
# Любая операция, изменяющая строку, создает новую строку
s = s.upper()
print(s)  # Выведет "HELLO"

# Кортежи также являются иммутабельными
t = (1, 2, 3)
# Попытка изменить элемент кортежа вызовет ошибку
# t[0] = 0  # TypeError: 'tuple' object does not support item assignment
Класс String является иммутабельным. Всякий раз, когда выполняется операция, изменяющая строку, создается новый объект строки.
String s = "hello";
s = s.toUpperCase();
System.out.println(s);  // Выведет "HELLO"
🚩Для создания своих иммутабельных классов в Java можно сделать следующее Сделать класс финальным, чтобы предотвратить наследование. Все поля объявить приватными и финальными. Не предоставлять методов для изменения состояния (сеттеров). Обеспечить, чтобы изменяемые объекты, передаваемые в конструктор, были скопированы.
public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}
🚩Для создания иммутабельных объектов необходимо соблюдать несколько правил: 🟠Приватные и финальные поля Все поля объекта должны быть объявлены как private и final. 🟠Отсутствие сеттеров Не должны быть предоставлены методы, которые позволяют изменять состояние объекта. 🟠Конструкторы Конструкторы должны устанавливать все поля объекта, инициализируя их значениями, которые не могут быть изменены после создания объекта. 🟠Защита изменяемых объектов Если объект содержит изменяемые поля, такие как массивы или коллекции, они должны быть скопированы или защищены от изменения извне. Ставь 👍 и забирай 📚 Базу знаний

Высшее образование дистанционно от 6700 ₽/мес. Поступи в Московский технологический институт в мае! — Высшее образование в мо
Высшее образование дистанционно от 6700 ₽/мес. Поступи в Московский технологический институт в мае! — Высшее образование в московском вузе без выезда на сессии. — Полностью дистанционный онлайн-формат. — Обучайся дома, на работе, в путешествии. — Диплом государственного образца. — 73 направления и программы обучения. — Программа колледж + вуз без ЕГЭ. Скидка 10% на платное обучение при оплате за год. Подать заявку #реклама 16+ mti-vuz.ru О рекламодателе

🤔 Разница между pull и fetch? git pull выполняет fetch (загружает изменения из удалённого репозитория) и автоматически сливает их с локальной веткой. git fetch только загружает изменения, не изменяя локальные файлы, что позволяет вручную контролировать слияние. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

EVOLUT в Москве - бизнес-сообщество для роста и решений Объединяем тех, кто готов к совместным проектам, открыт к обмену опыт
EVOLUT в Москве - бизнес-сообщество для роста и решений Объединяем тех, кто готов к совместным проектам, открыт к обмену опытом и ценит деловое партнерство. 5-этапный отбор кандидатов. Для каждого резидента 3-месячный мастермайнд, форум-группы, разборы с основателем. Развивайте свой бизнес с EVOLUT, сохраняя личное время и энергию. Станьте резидентом! Перейти на сайт #реклама evolutclub.com О рекламодателе

🤔 Для чего нужен Синглтон паттерн? 🟠Контроль над созданием объекта Иногда требуется, чтобы у определенного класса был только один экземпляр в течение жизненного цикла программы. Это может быть связано с тем, что данный объект использует значительные ресурсы или имеет состояние, которое должно быть уникальным. 🟠Глобальная точка доступа Синглтон предоставляет простой способ доступа к объекту из любой точки программы. Это упрощает управление состоянием приложения, поскольку все части программы могут взаимодействовать с одним и тем же экземпляром объекта. 🚩Как используется? 1⃣Закрытие конструктора Конструктор объявляется закрытым (private), чтобы предотвратить создание объекта напрямую через оператор new. 2⃣Закрытие клонирования Метод клонирования (magic method __clone()) тоже объявляется закрытым, чтобы запретить клонирование объекта. 3⃣Закрытие десериализации Метод десериализации (magic method __wakeup()) также объявляется закрытым, чтобы предотвратить восстановление объекта из строки. 4⃣Статический метод для получения экземпляра Создается статический метод, который проверяет, существует ли уже экземпляр объекта. Если нет, то создается новый; если да, то возвращается существующий. Пример
class Singleton {
    // Статическое свойство для хранения единственного экземпляра
    private static $instance;

    // Закрытый конструктор для предотвращения создания объекта через new
    private function __construct() {}

    // Запрет клонирования объекта
    private function __clone() {}

    // Запрет десериализации объекта
    private function __wakeup() {}

    // Метод для получения единственного экземпляра
    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    // Пример метода
    public function sayHello() {
        echo "Hello, Singleton!";
    }
}

// Использование синглтона
$singleton = Singleton::getInstance();
$singleton->sayHello(); // Выведет "Hello, Singleton!"
🟠Контролируемое создание Конструктор закрыт, поэтому экземпляр можно создать только внутри класса через метод getInstance(). 🟠Глобальная доступность Поскольку метод getInstance() статический, он доступен в любом месте кода, что делает доступ к экземпляру глобальным. 🟠Один экземпляр Проверка в методе getInstance() гарантирует, что будет создан только один экземпляр класса. Ставь 👍 и забирай 📚 Базу знаний

CallSmart - контроль качества звонков и встреч с AI 📞 Сотни звонков в день — а конверсии стоят на месте? CallSmart подключает ИИ к вашим звонкам и встречам: он находит слабые места в скриптах, фиксирует ошибки менеджеров и помогает выстроить процессы, которые приносят продажи.📊 Никакой ручной прослушки, только точная аналитика. Экономьте ресурсы и масштабируйтесь быстрее. ✅ 20 звонков — бесплатно, чтобы вы сразу увидели эффект. Перейти на сайт #реклама 16+ callsmart.ru О рекламодателе

🤔 Что такое Cookies? Это небольшие файлы, которые хранят данные на стороне клиента (в браузере). Они используются для: 1. Идентификации пользователя и управления сессиями. 2. Сохранения предпочтений пользователя. 3. Отслеживания активности пользователя на сайте. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Как устроен типичный тест на opening point? Тест на Opening Point (OP-тест) используется для проверки скорости, с которой игрок или программа находят критически важное первое решение в задаче. Такой тест чаще всего применяется в шахматах, игровых стратегиях, а также в программировании при оценке эвристик. 🚩Как устроен тест на Opening Point? 🟠Задаётся начальная позиция или состояние Например, шахматная позиция, игровая ситуация или входные данные для алгоритма. 🟠Требуется найти оптимальный (или хороший) первый шаг В шахматах это может быть лучший ход. В алгоритмах — первое удачное разбиение задачи. 🟠Замеряется время и корректность ответа Важно, насколько быстро испытуемый (или программа) нашёл первый ход. Проверяется, соответствует ли он эталону (оптимальному решению). 🚩Пример из шахмат В шахматах Opening Point тест оценивает, насколько быстро игрок или движок могут найти правильный ход в дебюте. Например: > Позиция: > 1. e4 e5 > 2. Nf3 Nc6 > 3. Bb5 a6 > 4. ? Ожидаемый ход: Ba4 (Испанская партия). Программа должна как можно быстрее выбрать этот ход, а тест фиксирует время поиска. 🚩Пример из программирования Допустим, у нас есть массив чисел, и нужно быстро найти первый элемент, который удовлетворяет определённому условию.
function findOpeningPoint($arr, $condition) {
    foreach ($arr as $item) {
        if ($condition($item)) {
            return $item;
        }
    }
    return null; // Если не найдено
}

$array = [1, 3, 7, 10, 15];
$condition = fn($x) => $x > 5;

echo findOpeningPoint($array, $condition); // Выведет 7
Ставь 👍 и забирай 📚 Базу знаний

Битрикс24 обновился: новый дизайн и много нейронки Интерфейс стал чище и легче. Появился AI-ассистент с голосовым вводом, а ещё готовят AI-агентов для бизнес-процессов — они будут сами вести рутину. Онлайн-запись теперь с формами, оплатой и овербукингом, а в мессенджере и звонках — упор на простоту и безопасность. Нейронка анализирует видеозвонки и настраивает CRM, включая поля сделок. Добавили автоматизацию повторных продаж, интеграцию с 1С и новые бизнес-процессы. Смотреть #реклама 16+ lightness.bitrix24.ru О рекламодателе

🤔 Что такое списочный тип? Это структура данных, представляющая упорядоченный набор элементов, где каждый элемент связан с предыдущим и следующим. 1. Пример — связанный список (linked list), где каждый узел содержит значение и ссылку на следующий узел. 2. Такие типы обеспечивают удобное добавление и удаление элементов, но имеют медленный доступ по индексу (O(n)). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Начните работу легко, даже если у вас лапки Работаете в программах 1С? Попробуйте современное решение! 1С:Фреш — это облачный
Начните работу легко, даже если у вас лапки Работаете в программах 1С? Попробуйте современное решение! 1С:Фреш — это облачный сервис, который открывает доступ ко всем популярным программам 1С: Бухгалтерии, Рознице, Зарплата и управление персоналом и другим. Чем 1С:Фреш отличается от локальных версий программ: — Автообновление 1С всегда до последней версии, не нужно ждать специалистов; — Синхронизация данных между программами 1С; — Безопасность данных, вся информация передается в зашифрованном виде и доступна только вам. ⚡Зарегистрируйтесь, и получите 30 дней тестового доступа к полному функционалу! Зарегистрироваться #реклама 16+ pcs.ru О рекламодателе

🤔 Что такое агрегат? Агрегат – это термин, часто используемый в области баз данных и программирования, который обозначает способ группировки данных для выполнения различных операций, таких как суммирование, подсчёт, нахождение среднего значения и другие. В реляционных базах данных агрегаты применяются для выполнения агрегатных функций, таких как SUM(), COUNT(), AVG(), MAX(), MIN() и других. 🚩Зачем нужны? 🟠Анализ данных: Агрегаты позволяют получить сводные данные, которые помогают анализировать и понимать большие наборы данных. Например, можно узнать общее количество продаж, среднюю стоимость заказа, максимальную и минимальную зарплату сотрудников и т.д. 🟠Оптимизация запросов: Использование агрегатных функций позволяет выполнять сложные вычисления на сервере базы данных, что экономит время и ресурсы по сравнению с выполнением этих операций на клиентской стороне. 🚩Примеры использования агрегатных функций: Суммирование (SUM):
-- Получение общей суммы всех заказов
SELECT SUM(total_amount) AS total_sales
FROM orders;
Подсчёт (COUNT):
-- Подсчёт общего количества заказов
SELECT COUNT(*) AS total_orders
FROM orders;
Среднее значение (AVG):
-- Нахождение средней суммы заказа
SELECT AVG(total_amount) AS average_order_value
FROM orders;
Максимальное значение (MAX):
-- Нахождение максимальной суммы заказа
SELECT MAX(total_amount) AS max_order_value
FROM orders;
Минимальное значение (MIN):
-- Нахождение минимальной суммы заказа
SELECT MIN(total_amount) AS min_order_value
FROM orders;
🚩 Группировка данных с использованием GROUP BY: Для более сложных запросов можно использовать агрегатные функции вместе с оператором GROUP BY, чтобы группировать данные по определённому критерию. В этом запросе результаты будут сгруппированы по customer_id, и для каждого клиента будет рассчитана общая сумма заказов.
-- Получение общей суммы заказов для каждого клиента
SELECT customer_id, SUM(total_amount) AS total_sales_per_customer
FROM orders
GROUP BY customer_id;
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Какие структуры данных в программировании существуют? Основные структуры: - Линейные: массивы, списки, очереди, стеки. - Нелинейные: деревья, графы. - Ассоциативные: хеш-таблицы, словари. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Регистрируйтесь на вебинар SIEM UserGate 💻Расскажет о том, как экосистема и SIEM UserGate помогает бороться с фишинговыми атаками в рамках демонстрации конкретного кейса. На вебинаре будет: - Вступительное слово - Экспертиза UserGate и сценарий конкретного кейса - Демонстрация кейса защиты от фишинговой атаки - Ответы на вопросы 👌Расскажем, как защитить вашу компанию. Регистрируйтесь — будет интересно! Зарегистрироваться #реклама 16+ webinar.usergate.com О рекламодателе

🤔 Какие виды запросов есть? В контексте веб-разработки и работы с API, "виды запросов" обычно относятся к HTTP-методам. HTTP-методы — это стандартизированные типы запросов, которые определяют действие, требуемое от веб-сервера. Каждый метод указывает на определённый тип операции над ресурсами. Вот основные методы (виды запросов), используемые в веб-разработке: 🟠GET Назначение: Запрос содержимого указанного ресурса. GET-запросы должны быть идемпотентными, что означает, что их многократное выполнение приводит к одному и тому же результату и не изменяет состояние сервера. Пример использования: Запрос веб-страницы или изображения. 🟠POST Назначение: Отправка данных на сервер для создания нового ресурса. Данные отправляются в теле запроса. POST-запросы не идемпотентны, то есть многократное выполнение может приводить к разным результатам. Пример использования: Отправка формы на веб-сайте. 🟠PUT Назначение: Обновление существующего ресурса или создание нового ресурса по указанному URI. В отличие от POST, PUT идемпотентен. Пример использования: Обновление деталей пользователя. 🟠DELETE Назначение: Удаление указанного ресурса. Пример использования: Удаление записи из базы данных. 🟠PATCH Назначение: Частичное обновление существующего ресурса. PATCH может быть не идемпотентным, в зависимости от того, как он реализован на сервере. Пример использования: Обновление части данных пользователя, например, смена пароля. 🟠HEAD Назначение: Аналогичен GET, но сервер возвращает только заголовки ответа без тела. Используется для извлечения метаданных. Пример использования: Проверка существования ресурса или его последнего обновления. 🟠OPTIONS Назначение: Определение возможностей веб-сервера или параметров подключения для конкретного ресурса. Пример использования: Определение поддерживаемых методов HTTP для URL. 🟠TRACE Назначение: Эхо-запрос. Возвращает в теле ответа полученный запрос. Это может использоваться для диагностики. Из-за соображений безопасности его поддержка на серверах часто отключена. Пример использования: Отладка веб-запросов. Ставь 👍 и забирай 📚 Базу знаний

Битрикс24 обновил всё. Даже интерфейс Коротко о главном: - Перерисовали весь интерфейс Битрикс24, теперь он зефирный (буквально). - Выпустили AI-ассистента с голосовым вводом. - Готовят AI-агентов. Как пример — в бизнес-процессах. - Сделали формы онлайн-записи для сайтов и рекламы, сразу с оплатой. - В мессенджере и видеозвонках почти всё поменяли. Отдельное вау — анализ и итоги созвонов от AI. - Искусственный интеллект теперь настраивает CRM сам, вплоть до полей в сделках. - Автоматизация повторных продаж все с тем же искусственным интеллектом. 📚Ну и кучу всего еще — интеграция с 1С (в КЭДО в том числе), новые бизнес-процессы и так далее. 👍Это нам надо. Узнать больше #реклама 16+ lightness.bitrix24.ru О рекламодателе

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