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

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Что выведет код?
Объяснение👆 спасибо за него автору канала @phpyh

Функция генератора, которую мы обсуждали в прошлый раз, позволяет не только генерировать значения при помощи оператора yield, но и вернуть ещё одно значение через return. Вызывающая сторона может его получить присваиванием $return = yield from $generator или вызовом $generator->getReturn() после полного обхода генератора. Оба варианта используются в коде викторины.

Когда это может быть полезно? Если в ходе работы функции генератора накапливается какая-то дополнительная информация, её очень удобно возвращать через return. Например, при построчном анализе большого Excel валидные строки отдаём через yield, а информацию о невалидных строках собираем в массиве и отдаем через return.

Про return также важно помнить при декорации функций генератора, иначе возвращаемое значение обратится в null. Пример про курсор и транзакцию из прошлого пояснения с учетом этого нюанса:

/**
* @template TKey
* @template TValue
* @template TSend
* @template TReturn
* @psalm-param callable(self): \Generator<TKey, TValue, TSend, TReturn> $cursor
* @psalm-return \Generator<TKey, TValue, TSend, TReturn>
*/
function transactionally(callable $cursor): Generator
{
$this->connection->beginTransaction();
$result = yield from $cursor(); // try/catch/rollback опущены
$this->connection->commit();

return $result;
}
[PHP 7.4] Что выведет код?
Каким будет результат выполнения следующего кода?
Каким будет результат выполнения следующего кода?
Anonymous Quiz
9%
1 => 0, 3 => 2, 4 => 6
7%
1 => 3, 3 => 1, 4 => 3
55%
Пустой массив
3%
1 => 0
15%
3 => 1, 3=> 2, 4 => 3, 4=> 6
11%
Не знаю
Говорят, многие php-разработчики по ночам пишут на go, специально для вас мы сделали канал с задачами по го: @golangquiz 😎
[PHP 7.4] Отработает ли данный код?
[PHP 7.4] Отработает ли данный код?
Anonymous Quiz
49%
Да
45%
Нет
6%
Не знаю
С помощью какой функции можно проверить правильность даты по григорианскому календарю?
Anonymous Quiz
29%
checkdate()
29%
gmstrftime()
25%
date()
3%
idate()
14%
Не знаю
[PHP 7.4] Что будет результатом работы кода?
php artisan key:generate Как правило, он генерирует строку какой длины?
Anonymous Quiz
16%
16 символов
8%
случайная длина
64%
32 символа
0%
6 символов
11%
Не знаю
Посмотрите на фрагмент кода. Эти два блока будут выполнять идентичную проверку/действие. Что такое XXXXXX?
Посмотрите на фрагмент кода. Эти два блока будут выполнять идентичную проверку/действие. Что такое XXXXXX?
Final Results
32%
ifnot
15%
while
30%
unless
7%
notif
16%
Не знаю
Ошиблись с вопросом выше, там ошибка, исправимся 🧐

А вообще как на счет вопросов по laravel/symfony?
что думаешь на этот счет?
Anonymous Quiz
32%
laravel
25%
symfony
29%
laravel и symfony
14%
нинада
[PHP 7.4] Отработает ли данный код?
[PHP 7.4] Отработает ли данный код?
Anonymous Quiz
65%
Да
32%
Нет
4%
Не знаю