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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
2 343
Obunachilar
-324 soatlar
-77 kunlar
-2830 kunlar
Postlar arxiv
🤔 В чем заключается обработка ошибок и исключений? Это механизм выявления и реагирования на непредвиденные ситуации в коде. - Ошибки (Errors) – критические сбои (OutOfMemoryError, StackOverflowError). - Исключения (Exceptions) – проблемы в логике (NullPointerException, IOException). Обрабатываются с помощью try-catch-finally, throw, throws, а также глобальных обработчиков (onError, fallback strategies). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Айтишники, это вам — в телеграм есть комьюнити по каждому направлению в IT Там есть буквально всё: чаты для общения, тонны ма
Айтишники, это вам — в телеграм есть комьюнити по каждому направлению в IT Там есть буквально всё: чаты для общения, тонны материала(книги, курсы, ресурсы и гайды), свежие новости и конечно же мемы Выбирайте своё направление: 💩 Frontend 🐍 Python 🐧 Linux 👩‍💻 С/С++ 👩‍💻 C# 🤔 Хакинг & ИБ 📱 GitHub 🖥 SQL 👩‍💻 Сисадмин 🤟 DevOps ⚙️ Backend 🖥 Data Science 🧑‍💻 Java 🐞 Тестирование 🖥 PM / PdM 👩‍💻 GameDev 🧑‍💻 Golang 👣 Rust 🧑‍💻 PHP 💻 WebDev 🖥 Моб. Dev 🖥Анали.(SA&BA) 👩‍💻 Дизайн 🖥 Нейросети 💛 1C 🤓 Книги IT ➡️ Сохраняйте в закладки

🤔 Какие бывают области видимости? Область видимости (или видимость) определяет, где в коде можно получить доступ к переменным, функциям и другим объектам. В 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. 🟠Публичная область видимости Свойства и методы доступны отовсюду. 🟠Защищённая область видимости Свойства и методы доступны только внутри класса и его наследников. 🟠Приватная область видимости Свойства и методы доступны только внутри класса, в котором они объявлены. Ставь 👍 и забирай 📚 Базу знаний

Регистрируйтесь на Yandex Ecom Open Air 8 августа Море инсайтов для бизнеса, музыкальный open-air, лекции и нетворкинг. Участие бесплатно! Зарегистрироваться #реклама 18+ ecomfest.ru О рекламодателе

🤔 Что такое CSS? Это язык, используемый для описания внешнего вида и стилей веб-страниц: 1. Определяет цвет, шрифты, расположение элементов и другие визуальные свойства. 2. Работает совместно с HTML, отделяя структуру документа от его оформления. 3. Поддерживает каскадность, позволяя переопределять стили с учетом приоритетов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Обучение на Data Protection Officer (DPO) ⚡Обучение по защите персональных данных от практиков из Comply, ALUMNI Partners, Oz
Обучение на Data Protection Officer (DPO) ⚡Обучение по защите персональных данных от практиков из Comply, ALUMNI Partners, Ozon, VK и др ✨ На курсе вы узнаете: » Узнаете все про работу с персональными данными » 152-ФЗ и трансграничную передачу данных 🎓Программа: » Управление рисками » Проверка регулятора » Составление документов Скидка до конца недели! Оставьте заявку сейчас и станьте ближе к успешной карьере юриста! ❤️ Узнать больше #реклама 16+ mosdigitals.ru О рекламодателе

🤔 Какие есть виды join? JOIN – это операция в SQL, которая позволяет объединять данные из двух или более таблиц на основе общего поля. В SQL есть 5 основных видов JOIN 🟠`INNER JOIN` пересечение двух таблиц (только совпадающие записи). 🟠`LEFT JOIN` все записи из левой таблицы + совпадения из правой. 🟠`RIGHT JOIN` все записи из правой таблицы + совпадения из левой. 🟠`FULL JOIN` объединяет все записи из обеих таблиц. 🟠`CROSS JOIN` декартово произведение (каждая строка первой таблицы соединяется с каждой строкой второй). 🚩`INNER JOIN` – только совпадения Возвращает только те строки, у которых есть совпадения в обеих таблицах.
SELECT users.id, users.name, orders.amount
FROM users
INNER JOIN orders ON users.id = orders.user_id;
🚩`LEFT JOIN` – все из левой таблицы + совпадения Возвращает все записи из левой таблицы, а если в правой нет совпадения – подставляет NULL.
SELECT users.id, users.name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
Ставь 👍 и забирай 📚 Базу знаний

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

Онлайн-магистратура с IT специальностями от Яндекса Совместно с ИТМО, МИФИ, МФТИ. Онлайн-магистратура с актуальными программами и гибким графиком обучения. Получите высокооплачиваемую IT профессию, официальный диплом и практические знания. Господдержка оплаты. Совмещение с работой! Подать заявку #реклама 16+ practicum.yandex.ru О рекламодателе

🤔 Что считается хорошо написанным Task`ом? Хорошо написанный Task (задача) должен быть понятным, конкретным и выполнимым. Если задача написана размыто, разработчик потратит больше времени на уточнение деталей, а не на саму работу. 🚩Основные принципы хорошего Task'а 🟠Чёткое и понятное название Плохо: Исправить баг (какой баг? где?) Хорошо: Исправить ошибку расчёта скидки при оформлении заказа 🟠Описание должно отвечать на 3 вопроса: Что нужно сделать? (конкретные действия) Зачем это нужно? (какая проблема решается) Как это проверить? (критерии выполнения) 🟠Минимум абстракции, максимум конкретики Плохо: Добавить авторизацию на сайт Хорошо: Добавить авторизацию через Google OAuth 2.0 для пользователей, чтобы они могли входить через Google-аккаунт 🟠Разбивать задачи на подзадачи (если задача сложная) Например, если задача "Реализовать корзину покупок", то лучше разбить её на: Добавление товаров в корзину Расчёт итоговой суммы Удаление товаров из корзины Оформление заказа 🟠Указывать требования (технические детали, ссылки, макеты, API, форматы данных) Если задача связана с API → указываем эндпоинты. Если UI → прикладываем макеты (Figma, Zeplin). Если есть примеры → добавляем скриншоты. 🟠Добавлять критерии выполнения (Definition of Done, DoD) Плохо: Сделать фильтр по цене Хорошо: Фильтр по цене должен работать в диапазоне от 0 до 100 000, быть интерактивным (ползунок), без перезагрузки страницы. Ставь 👍 и забирай 📚 Базу знаний

Робот-мойщик окон Hobot-S7 Pro. Чистота без усилий! ✨ Робот мойщик окон — современное решение для автоматической чистки окон, стен из кафеля, стеклянные перегородок и дверей, в том числе и безрамных. ✅ Чистит поверхности высотой до 5 метров и шириной до 6 метров! Перейти на сайт #реклама hobot.ru О рекламодателе

🤔 В чем разница кэширования, кодирования, шифрования? 1. Кэширование: - Сохранение данных для быстрого повторного доступа, уменьшая время загрузки и нагрузку на сервер. - Пример: сохранение веб-страницы в браузере. 2. Кодирование: - Преобразование данных в другой формат для удобства передачи или совместимости. - Пример: Base64 для передачи бинарных данных через текстовые протоколы. 3. Шифрование: - Защита данных с использованием ключей, чтобы их мог прочитать только авторизованный получатель. - Пример: AES или RSA для передачи конфиденциальной информации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое стрелочные и анонимные функции? Стрелочные функции (также известные как лямбда-функции) и анонимные функции служат для создания функций без имени, которые могут быть использованы в качестве значений переменных, параметров функций или просто для выполнения некоторого действия на месте. 🚩Анонимные функции Это функции без имени, которые часто используются для создания функций-замыканий. Замыкания позволяют функциям захватывать переменные из своей области видимости. Анонимные функции создаются с использованием ключевого слова function.
<?php
$sayHello = function($name) {
    return "Привет, $name!";
};

echo $sayHello("Мир"); // Выведет: Привет, Мир!
?>
🚩Стрелочные функции Были введены в PHP 7.4 и представляют собой более компактный способ создания анонимных функций. Они используют синтаксис fn и автоматически захватывают переменные из внешней области видимости по значению.
<?php
$factor = 10;

$multiply = fn($x) => $x * $factor;

echo $multiply(5); // Выведет: 50
?>
🚩Зачем это нужно? 🟠Удобство Создание функций на месте без необходимости придумывать имена. 🟠Замыкания Возможность захвата переменных из внешней области видимости. 🟠Читабельность кода Стрелочные функции делают код более лаконичным и читаемым. 🚩Как это используется? 🟠Фильтрация и сортировка массивов Часто используются в функциях вроде array_filter, array_map и usort. 🟠Колбэки Передача функции в качестве аргумента в другие функции (например, для обработки событий).
<?php
$numbers = [1, 2, 3, 4, 5];

$squared = array_map(fn($n) => $n * $n, $numbers);

print_r($squared); // Выведет: Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
?>
Ставь 👍 и забирай 📚 Базу знаний

🤔 Зачем нужен шаблон Builder? Шаблон Builder (Строитель) применяется для поэтапного создания сложных объектов. Он нужен, когда: - Объект имеет много параметров, инициализация которых может быть сложной. - Объект должен создаваться в разных конфигурациях, не загромождая конструктор. - Код становится более читаемым, так как отделяется процесс создания от структуры объекта. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое агрегатные функции? Агрегатные функции в контексте управления базами данных и SQL — это специальные функции, которые выполняют вычисление над набором значений и возвращают единственный результат. Они часто используются для выполнения математических, статистических и других операций с данными в запросах для анализа и обобщения информации из множества записей. 🚩Основные агрегатные функции 🟠COUNT() Подсчитывает количество элементов в наборе. Эта функция может использоваться для подсчета количества строк в таблице или количества строк, соответствующих определенным критериям. Пример: SELECT COUNT(*) FROM users; — подсчитывает количество всех строк в таблице users. 🟠SUM() Суммирует числовые значения столбца. Используется для получения общей суммы числовых данных. Пример: SELECT SUM(salary) FROM employees; — считает общую сумму зарплат всех сотрудников. 🟠AVG() Вычисляет среднее значение числовых данных. Эта функция полезна для нахождения среднего значения определенного столбца. Пример: SELECT AVG(price) FROM products; — рассчитывает среднюю цену продукта. 🟠MIN() и MAX() Возвращают минимальное и максимальное значения в столбце соответственно. Эти функции используются для нахождения наименьших и наибольших значений. Пример: SELECT MIN(age), MAX(age) FROM users; — находит минимальный и максимальный возраст среди пользователей. 🟠GROUP_CONCAT() (в MySQL) / STRING_AGG() (в PostgreSQL) Склеивают строки из столбца, объединяя их в одну строку с разделителем. Пример (MySQL): SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users WHERE city = 'New York'; — объединяет имена пользователей из Нью-Йорка через запятую. Ставь 👍 и забирай 📚 Базу знаний

Высшее образование дистанционно в Московском ВУЗе Вы мечтаете получить высшее образование, но не сдали ЕГЭ или получили низки
Высшее образование дистанционно в Московском ВУЗе Вы мечтаете получить высшее образование, но не сдали ЕГЭ или получили низкие баллы? У нас есть решение для вас! Институт Международных Экономических Связей предлагает дистанционное обучение , которое позволяет получать качественные знания из любой точки мира по 10+ направлениям обучения. ✅ Государственный диплом без отметки о дистантеУдобный личный кабинет студентаПоддержка кураторов на каждом этапе обученияМожно поступить без ЕГЭ Узнать больше #реклама 16+ imes.su О рекламодателе

🤔 Чем HTTP первой версии отличается от второй? HTTP/1.1 требует для каждого запроса нового соединения, что создает дополнительную нагрузку. HTTP/2 поддерживает мультиплексирование, позволяя передавать несколько запросов и ответов одновременно по одному соединению, что улучшает производительность.? Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как сделать так, чтобы приложение разворачивалось быстрее в Dockerе? Для ускорения развертывания приложений в Docker существует несколько методов и практик, которые помогают оптимизировать сборку и запуск контейнеров. Вот некоторые из них: 🚩Оптимизация Dockerfile 🟠Меньше слоев Каждая инструкция в Dockerfile создает новый слой в образе. Старайтесь минимизировать количество слоев, объединяя инструкции, где это возможно.
# Плохо
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get install -y vim

# Хорошо
RUN apt-get update && \
    apt-get install -y curl vim
🟠Использование правильного базового образа Выберите наиболее подходящий базовый образ, который минимально необходим для вашего приложения. Использование минималистичных образов, таких как alpine, может существенно уменьшить размер образа.
FROM php:7.4-fpm-alpine
🟠Кэширование зависимостей Сначала копируйте файлы с зависимостями (например, composer.json, package.json) и устанавливайте их, а затем копируйте остальной код. Это позволит Docker использовать кэш на этапе установки зависимостей, если они не изменились.
FROM php:7.4-fpm-alpine

# Установка зависимостей
COPY composer.json composer.lock /app/
WORKDIR /app
RUN composer install --no-dev --optimize-autoloader

# Копирование кода
COPY . /app
🟠Использование многоступенчатой сборки Многоступенчатая сборка позволяет собирать и тестировать ваше приложение в одном этапе и копировать только необходимые файлы в финальный образ, что уменьшает размер финального образа.
# Сборочный этап
FROM composer:latest AS builder
WORKDIR /app
COPY composer.json composer.lock /app/
RUN composer install --no-dev --optimize-autoloader

# Финальный этап
FROM php:7.4-fpm-alpine
WORKDIR /app
COPY --from=builder /app /app
COPY . /app
🟠Использование кэша сборки При разработке используйте кэш Docker для ускорения сборки. Для этого нужно правильно организовать порядок инструкций в Dockerfile, чтобы неизменные части использовали кэш. 🟠Оптимизация Docker Compose Если вы используете Docker Compose, убедитесь, что сервисы поднимаются параллельно и что вы используете возможность кэширования сборок.
version: '3.8'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/app
    ports:
      - "8080:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: app_db
    ports:
      - "3306:3306"
🟠Использование кэшированных слоев и промежуточных образов При частых изменениях кода старайтесь кэшировать слои, которые не меняются, и использовать промежуточные образы для ускорения сборки.
# Использование промежуточного образа
FROM php:7.4-fpm-alpine AS base
COPY . /app
WORKDIR /app
RUN composer install --no-dev --optimize-autoloader

FROM base AS dev
RUN apk add --no-cache bash
CMD ["php-fpm"]

FROM base AS prod
CMD ["php-fpm"]
🟠Использование готовых образов для разработки Используйте готовые образы, где уже установлены все необходимые зависимости для разработки, что сократит время сборки образов. 🟠Параллельная сборка и запуск Используйте параллельную сборку и запуск контейнеров, если это возможно. Docker Compose поддерживает параллельный запуск, что может значительно ускорить процесс развертывания. Ставь 👍 и забирай 📚 Базу знаний

В Битрикс24 теперь можно сделать сайт за 30 секунд Серьёзно. Пишешь, что нужно, и AI сам всё собирает: тексты, картинки, офор
В Битрикс24 теперь можно сделать сайт за 30 секунд Серьёзно. Пишешь, что нужно, и AI сам всё собирает: тексты, картинки, оформление. ✨Никакой магии, просто умный помощник. Попробуйте — закайфуете от скорости! Попробовать #реклама 16+ sites-24.bitrix24.ru О рекламодателе

🤔 Как типы связи реализуются в Laravel? Laravel Eloquent поддерживает следующие связи: - One-to-One — через hasOne / belongsTo. - One-to-Many — через hasMany / belongsTo. - Many-to-Many — через belongsToMany и pivot-таблицы. - Has One Through / Has Many Through — для косвенных связей. - Polymorphic — одна модель может принадлежать разным другим моделям (например, Comment может быть к Post или Video). - Morph To Many — полиморфные связи с множеством объектов. Все связи описываются как методы модели и могут использоваться для ленивой или жадной загрузки (lazy/eager loading). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний