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

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

前往频道在 Telegram

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

显示更多
2 345
订阅者
+124 小时
-47
-2630
帖子存档
🤔 Для чего нужен ELT? ELT (Extract, Load, Transform) – это процесс обработки данных, используемый в аналитике: - Extract (Извлечение) – загрузка данных из источников (БД, API). - Load (Загрузка) – сохранение данных в хранилище (например, в Data Warehouse). - Transform (Преобразование) – очистка, фильтрация, агрегация данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Расскажи про букву D в SOLID и ее связь с интерфейсами? Принцип Dependency Inversion (DIP) гласит: Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций (интерфейсов). Код не должен зависеть от конкретных классов, а должен работать через интерфейсы или абстракции. Это делает код гибче и меньше зависящим от деталей реализации. 🚩Как DIP связан с интерфейсами? Плохой код (без инверсии зависимостей)
class MySQLDatabase {
    public function connect() {
        return "Подключение к MySQL";
    }
}

class UserRepository {
    private MySQLDatabase $db; // Жёсткая зависимость!

    public function __construct() {
        $this->db = new MySQLDatabase();
    }
}
Хороший код (через интерфейс, следуя DIP)
interface DatabaseInterface {
    public function connect();
}

class MySQLDatabase implements DatabaseInterface {
    public function connect() {
        return "Подключение к MySQL";
    }
}

class PostgreSQLDatabase implements DatabaseInterface {
    public function connect() {
        return "Подключение к PostgreSQL";
    }
}

class UserRepository {
    private DatabaseInterface $db;

    public function __construct(DatabaseInterface $db) {
        $this->db = $db;
    }
}

// Теперь можно подставить любую базу данных!
$mysqlRepo = new UserRepository(new MySQLDatabase());
$pgRepo = new UserRepository(new PostgreSQLDatabase());
Ставь 👍 и забирай 📚 Базу знаний

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

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

🤔 Какие есть минусы у монолитов и микросервисов? 🚩Минусы монолитной архитектуры 🟠Сложность изменений и развертывания: Любое изменение в коде требует пересборки и развертывания всего приложения, что увеличивает риск и время на внедрение новых функций и исправление ошибок. 🟠Трудности масштабирования: Масштабировать монолитные приложения сложно, так как зачастую приходится масштабировать все компоненты приложения одновременно, даже если нагрузка возрастает только на одну часть системы. 🟠Зависимости и тестирование: Из-за тесной взаимосвязанности модулей любое изменение может повлиять на всю систему, что усложняет тестирование и обнаружение ошибок. 🟠Трудности в поддержке и разработке: По мере роста кода и команды разработчиков становится трудно управлять кодовой базой и разделять ответственность между различными командами. 🚩Минусы микросервисов Ложность управления: Микросервисная архитектура требует управления множеством отдельных сервисов, что увеличивает сложность настройки, развертывания и мониторинга. ➖Межсервисные взаимодействия: Сервисы должны общаться друг с другом, часто через сети, что добавляет задержки и увеличивает вероятность сбоев и проблем с синхронизацией данных. ➖Разделение данных: Управление согласованностью данных между разными сервисами становится сложнее, особенно когда данные распределены по различным хранилищам. ➖Сложность разработки: Разработка и отладка распределенных систем сложнее из-за необходимости учета межсервисных взаимодействий, а также обеспечения согласованности и целостности данных. ➖Инфраструктурные затраты: Поддержка множества сервисов требует большей инфраструктуры и ресурсов, включая оркестрацию контейнеров, балансировку нагрузки и управление сервисами. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое Entity? Это объект, представляющий конкретную сущность в системе или домене. Обычно он имеет уникальный идентификатор и может изменяться в течение своего жизненного цикла. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие модификаторы видимости есть в РНР? В PHP есть три основных модификатора видимости для свойств и методов классов: public, protected и private. Они определяют, какой код имеет доступ к этим свойствам и методам. 🟠`public` (публичный) Свойства и методы, объявленные как public, доступны отовсюду - как изнутри класса, так и извне, а также из наследуемых классов.
class MyClass {
    public $publicProperty = 'Public';

    public function publicMethod() {
        echo 'This is a public method';
    }
}

$obj = new MyClass();
echo $obj->publicProperty; // Выведет: Public
$obj->publicMethod(); // Выведет: This is a public method
🟠`protected` (защищённый) Свойства и методы, объявленные как protected, доступны только внутри класса и в классах-наследниках. Они недоступны для внешнего кода.
class MyClass {
    protected $protectedProperty = 'Protected';

    protected function protectedMethod() {
        echo 'This is a protected method';
    }
}

class ChildClass extends MyClass {
    public function accessProtected() {
        echo $this->protectedProperty; // Выведет: Protected
        $this->protectedMethod(); // Выведет: This is a protected method
    }
}

$obj = new ChildClass();
$obj->accessProtected(); 
🟠`private` (приватный) Свойства и методы, объявленные как private, доступны только внутри самого класса. Они недоступны ни для внешнего кода, ни для классов-наследников.
class MyClass {
    private $privateProperty = 'Private';

    private function privateMethod() {
        echo 'This is a private method';
    }

    public function accessPrivate() {
        echo $this->privateProperty; // Выведет: Private
        $this->privateMethod(); // Выведет: This is a private method
    }
}

$obj = new MyClass();
$obj->accessPrivate();
🚩Зачем нужны модификаторы видимости 🟠Инкапсуляция Модификаторы видимости помогают скрывать внутреннее состояние и детали реализации объекта, предоставляя только необходимые интерфейсы для взаимодействия. 🟠Безопасность Они защищают данные от неконтролируемого доступа и изменения, что повышает надежность и безопасность кода. 🟠Поддержка и развитие кода Позволяют контролировать доступ к методам и свойствам, что упрощает изменение и расширение кода без риска нарушить существующую функциональность. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что содержит инкапсуляция кроме сокрытия данных? 1. Контроль доступа: использование модификаторов public, protected, private для ограничения доступа. 2. Инкапсуляция логики: методы класса предоставляют контролируемый интерфейс для работы с данными. 3. Сохранение целостности: защита данных от некорректных изменений извне. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое namespaces? Это механизм, позволяющий организовать код в логические группы и избежать конфликтов имен, особенно в больших проектах или при использовании сторонних библиотек. 🚩Зачем они нужны? 🟠Избежание конфликтов имен В больших проектах могут быть сотни классов, функций и констант. Пространства имен помогают избежать ситуаций, когда разные части кода используют одинаковые имена. 🟠Упрощение организации кода Они позволяют группировать связанные классы, интерфейсы, функции и константы, что делает код более читаемым и поддерживаемым. 🟠Упрощение автозагрузки Пространства имен облегчают использование автозагрузчиков, таких как PSR-4, где классы и файлы организованы в соответствии с их пространствами имен. 🚩Как их использовать? Для использования пространств имен, нужно объявить их в начале файла с помощью ключевого слова namespace.
<?php
namespace MyProject\Models;

class User {
    public function getName() {
        return "John Doe";
    }
}
?>

Теперь класс User находится в пространстве имен MyProject\Models. Чтобы использовать этот класс в другом файле, нужно указать его полное имя:
<?php
require 'User.php';

$user = new \MyProject\Models\User();
echo $user->getName();
?>

Можно также использовать ключевое слово use для упрощения кода:
<?php
require 'User.php';

use MyProject\Models\User;

$user = new User();
echo $user->getName();
?>

Пространства имен могут содержать не только классы, но и функции и константы:
<?php
namespace MyProject\Utils;

const PI = 3.14;

function calculateCircleArea($radius) {
    return PI * $radius * $radius;
}
?>

Использование этих элементов будет аналогичным:
<?php
require 'Utils.php';

echo \MyProject\Utils\calculateCircleArea(5);
echo \MyProject\Utils\PI;
?>
Ставь 👍 и забирай 📚 Базу знаний

Ищу желающих перейти в сферу IT без долгого обучения ⚡ Обучим бесплатно — от вас потребуется всего несколько часов в день. Мы
Ищу желающих перейти в сферу IT без долгого обучения ⚡ Обучим бесплатно — от вас потребуется всего несколько часов в день. Мы помогаем IT-компаниям находить квалифицированных тестировщиков. Профессия тестировщика — отличный способ сменить сферу и начать зарабатывать стабильно. 👌 Подходит тем, кто не боится работать и хочет достойный доход. Сначала проведу вводное бесплатное занятие, где расскажу: — что такое тестирование и зачем оно нужно; — где искать клиентов; — как пройти практику и попасть в крутую IT-команду. ✅ Что нужно будет делать: — проверять приложения и программы; — находить баги; — получать за это деньги. 💰 Доход — от 70 000 ₽ в месяц и выше Подходит даже без технической подготовки. 👍 Для регистрации на бесплатный урок переходите на сайт. Перейти на сайт #реклама 16+ site.purrweb-academy.ru О рекламодателе

🤔 Что такое алгоритмическая сложность? Алгоритмическая сложность описывает эффективность алгоритма в зависимости от объёма входных данных. Измеряется во времени выполнения (Time Complexity) и потреблении памяти (Space Complexity). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как посчитать функцию если внутри неё много различных действий? Сложность функции можно оценить с помощью Big O (O-нотация) – это способ понять, как увеличивается время работы функции при росте входных данных. 🚩Определение сложности по Big O Константные операции (+, -, *, /, if, return) считаются за O(1). Циклы (for, while) увеличивают сложность** (например, for на N итераций → O(N)). Вложенные циклы (for внутри for) дают O(N²). Рекурсия учитывается как глубина рекурсии. 🚩Примеры расчёта сложности Простая функция (O(1)) – не зависит от входных данных
function addNumbers($a, $b) {
    return $a + $b;
}
Линейная сложность O(N) (цикл)
function printNumbers($n) {
    for ($i = 0; $i < $n; $i++) {
        echo $i;
    }
}
Квадратичная сложность O(N²) (вложенные циклы)
function printPairs($n) {
    for ($i = 0; $i < $n; $i++) {
        for ($j = 0; $j < $n; $j++) {
            echo "($i, $j) ";
        }
    }
}
Логарифмическая сложность O(log N) (деление пополам, бинарный поиск)
function binarySearch($arr, $target) {
    $left = 0;
    $right = count($arr) - 1;

    while ($left <= $right) {
        $mid = floor(($left + $right) / 2);
        
        if ($arr[$mid] == $target) {
            return $mid;
        } elseif ($arr[$mid] < $target) {
            $left = $mid + 1;
        } else {
            $right = $mid - 1;
        }
    }
    return -1;
}
Факториальная сложность O(N!) (перебор всех вариантов)
function factorial($n) {
    if ($n == 1) return 1;
    return $n * factorial($n - 1);
}
🚩Как считать сложность функции с разными действиями? Если в функции разные действия, считаем их отдельно и берём наибольшую сложность.
function complexFunction($n) {
    // O(1)
    $sum = 0;

    // O(N)
    for ($i = 0; $i < $n; $i++) {
        $sum += $i;
    }

    // O(N²)
    for ($i = 0; $i < $n; $i++) {
        for ($j = 0; $j < $n; $j++) {
            echo "Hello";
        }
    }

    return $sum;
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем класс отличается от объекта? 1. Класс — это шаблон или "чертёж", описывающий свойства и поведение объектов. 2. Объект — это экземпляр класса, созданный с использованием его структуры. 3. Класс определяет, что объект может делать, а объект выполняет это поведение. 4. Класс — это абстракция, объект — конкретное воплощение. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Слово "global" для чего используется? Ключевое слово global используется в PHP для доступа к глобальным переменным внутри функций. 🚩Как работает `global`? Доступ к глобальной переменной внутри функции
$counter = 10; // Глобальная переменная

function increment() {
    global $counter; // Доступ к глобальной переменной
    $counter++;
}

increment();
echo $counter; // ✅ 11
Использование нескольких глобальных переменных
$a = 5;
$b = 10;

function sum() {
    global $a, $b;
    $b = $a + $b; // Меняем глобальную переменную $b
}

sum();
echo $b; // ✅ 15
🟠Альтернативный способ – `$GLOBALS` Можно использовать суперглобальный массив $GLOBALS, который хранит все глобальные переменные.
$x = 3;
$y = 7;

function multiply() {
    $GLOBALS['y'] = $GLOBALS['x'] * $GLOBALS['y'];
}

multiply();
echo $y; // ✅ 21
🚩Когда `global` – плохая идея? Глобальные переменные усложняют отладку (их можно случайно изменить). Функции становятся зависимыми от внешних данных (плохо для тестирования). Лучше передавать переменные через аргументы функции. Альтернативный способ (без global)
function increment($counter) {
    return $counter + 1;
}

$counter = 10;
$counter = increment($counter);
echo $counter; // ✅ 11
Ставь 👍 и забирай 📚 Базу знаний

Робот мойщик окон Hobot-2S Ultrasonic. Гарантия 3 года. - Два резервуара с ультразвуковыми распылителями моющей жидкости - робот автоматически смачиваеть очищающую поверхность в двух направлениях. - Оснащен вакуумными датчиками, которые обнаруживают край очищаемой поверхности или оконный уплотнитель, обеспечивают высокую защиту от падения. - Датчики смещены к центру с краев, в отличии от роботов мойщиков конкурентов такой же формы, что позволяет глубже промывать углы. - Салфетки из высококачественной микрофибры, хорошо впитывают влагу, собирают пыль и грязь в волокна и удерживает до момента стирки - не царапают поверхность Инверторный двигатель Nidec - тихий, плавный запуск и долговечный. - Способен мыть поверхности без рам. - Озвучивает статусы работы на русском языке. Можно заменить эти сообщения на индивидуальные. Узнать больше #реклама hobot.ru О рекламодателе

🤔 Что такое логирование? Это запись событий, ошибок и действий приложения в журнал для диагностики и анализа. 1. Логи помогают отслеживать выполнение кода, анализировать сбои и выявлять узкие места. 2. Используются различные уровни логов: INFO, DEBUG, ERROR. 3. Это важный инструмент для отладки, мониторинга и аудита системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

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

🤔 Что такое Cookies в PHP? Cookies (Куки) – это небольшие файлы, которые браузер сохраняет на компьютере пользователя и отправляет серверу при каждом запросе. 🚩Как работают Cookies? Установка Cookie в PHP
setcookie("username", "Alice", time() + 3600, "/");
Чтение Cookie в PHP
echo $_COOKIE["username"]; // ✅ Alice
Удаление Cookie
setcookie("username", "", time() - 3600, "/");
🚩Где используются Cookies? Авторизация (сохранение логина). Запоминание настроек (тема, язык). Корзина товаров (если нет сессий). Отслеживание пользователей (Google Analytics, реклама). 🚩Ограничения и безопасность Cookies Максимальный размер – 4KB (поэтому для больших данных лучше использовать SESSION). Можно изменить в браузере (поэтому не храните пароли в куках!). Уязвимость XSS → если сайт подвержен XSS-атакам, злоумышленник может украсть куки. Защита Cookies
setcookie("secure_cookie", "value", time() + 3600, "/", "", true, true);
Ставь 👍 и забирай 📚 Базу знаний

Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие п
Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать? Команда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи. Из методички узнаете: - Как создать постоянную ссылку и подключаться на встречи в 2 клика, - Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных. - Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту. Еще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч. Получить гайд можно бесплатно на сайте. Скачать #реклама 16+ mts-link.ru О рекламодателе