Forwarded from BackendQuiz - задачи с собеседований по бэкенду
[REST] Одним из главных особенностей RESTFull является идемпотентность. Это так?
Anonymous Quiz
39%
Да
18%
Нет
26%
В определенных случаях
16%
Не знаю
Что выведет данный скрипт в результате своей работы?
Anonymous Quiz
70%
5
1%
0
7%
Ничего не выведет
21%
Выведет ошибку
0%
Не знаю
[PHP 7.4] Что будет в переменной $array после выполнения кода?
Anonymous Quiz
17%
[1 2 3 4 5]
35%
[2 3 4 5 6]
38%
[1 2 4 5 6]
9%
Не знаю
Объяснение👆 спасибо за него автору канала @phpyh
Функция генератора, которую мы обсуждали в прошлый раз, позволяет не только генерировать значения при помощи оператора
Когда это может быть полезно? Если в ходе работы функции генератора накапливается какая-то дополнительная информация, её очень удобно возвращать через return. Например, при построчном анализе большого Excel валидные строки отдаём через
Про
Функция генератора, которую мы обсуждали в прошлый раз, позволяет не только генерировать значения при помощи оператора
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;
}
Telegram
PHP задачи с собеседований
Объяснение 👆 и спасибо за него автору канала @phpyh
Функция является функцией генератора только если она содержит хотя бы один yield (https://www.php.net/manual/ru/language.generators.syntax.php). Тип возвращаемого значения Generator не делает функцию функцией…
Функция является функцией генератора только если она содержит хотя бы один yield (https://www.php.net/manual/ru/language.generators.syntax.php). Тип возвращаемого значения Generator не делает функцию функцией…
[PHP 7.4] Что выведет код?
Anonymous Quiz
61%
int(10050000)
4%
float(100500)
4%
float(100.5)
26%
Parse error: syntax error, unexpected '_500_00'
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 😎
С помощью какой функции можно проверить правильность даты по григорианскому календарю?
Anonymous Quiz
29%
checkdate()
29%
gmstrftime()
25%
date()
3%
idate()
14%
Не знаю
[PHP 7.4] Что будет результатом работы кода?
Anonymous Quiz
43%
int(42)
13%
string(2) "42"
44%
Fatal error: Uncaught TypeError: Typed property Test::$val must be int, string used
1%
Не знаю