PHP задачи с собеседований
2.92K subscribers
601 photos
6 videos
11 files
352 links
Задачи, тесты и теоретические вопросы по PHP.

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Какова временная сложность сортировки слиянием (Merge Sort) в худшем случае?
Anonymous Poll
22%
O(log n)
27%
O(n^2)
14%
O(n)
39%
O(n log n)
Какой основной компонент используется для хранения данных в Elasticsearch?
Anonymous Poll
22%
Коллекции
29%
Документы
52%
Индексы
8%
Таблицы
Что такое Lazy Collections в Laravel?

Обычная Collection загружает всё в память сразу. При работе с большими объёмами данных — это проблема.

// Загрузит ВСЕ записи в память
$users = User::all()->filter(...)->map(...);

// Lazy Collection — обрабатывает по одной записи через генератор
User::cursor()->filter(function (User $user) {
return $user->is_active;
})->each(function (User $user) {
ProcessUser::dispatch($user);
});

cursor() использует PDO fetchRow под капотом — в памяти одновременно одна запись.

Lazy Collection из файла:

// Обработка огромного CSV без OutOfMemoryError
$collection = LazyCollection::make(function () {
$handle = fopen('huge_file.csv', 'r');
while ($row = fgetcsv($handle)) {
yield $row;
}
});

$collection->skip(1)->chunk(100)->each(function ($rows) {
ImportBatch::dispatch($rows->toArray());
});

Когда использовать

— 10k+ записей в обработке → cursor() + LazyCollection
— Файлы, стримы, внешние API с пагинацией → LazyCollection с генератором

Важно: методы типа count() и last() материализуют коллекцию. Их лучше избегать в lazy-контексте.
Транзакция читает строку дважды в рамках одной транзакции и получает разные результаты, хотя сама строку не меняла. Какой это феномен и на каком уровне изоляции он устраняется?
Anonymous Poll
35%
Dirty read — устраняется на READ COMMITTED
26%
Phantom read — устраняется на SERIALIZABLE
34%
Non-repeatable read — устраняется на REPEATABLE READ
18%
Non-repeatable read — устраняется на READ UNCOMMITTED
Какой возникает риск при примой загрузке сущности по ID
Anonymous Poll
34%
Риска нет
37%
SQL injection
5%
CSRF
33%
IDOR
Какая аномалия возникает, когда транзакция читает данные, которые были изменены другой транзакцией, но изменения ещё не зафиксированы?
Anonymous Poll
62%
Dirty read
26%
Phantom read
7%
Dirty write
11%
Non-repeatable read
💬 Обратная связь

Проверяем динамику роста комьюнити :)
Ваш текущий грейд:

🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
🔥16👍8🎉4👎2
Какой тип базы данных лучше всего подходит для хранения сложных связей между данными?
Anonymous Poll
43%
Графовая
4%
Колоночная
4%
Документная
7%
На основе ключ-значение
59%
Реляционная