Основываясь на примере кода, что сделает функция array_walk?
Anonymous Quiz
83%
Применит функцию format_array_values() к каждому елементу $array
4%
Вернет следующую пару ключ/значение из массива
3%
Отсортирует массив
2%
Случайным образом перемешает содержимое массива
2%
Вернет наибольшее значение из массива или серию аргументов
7%
Не знаю
Forwarded from BackendQuiz - задачи с собеседований по бэкенду
Что из следующего верно о REST?
Anonymous Quiz
6%
в архитектуре REST сервер просто предоставляет доступ к ресурсам
17%
каждый ресурс идентифицируется с помощью URI/глобального идентификатора
22%
REST использует различные представления ресурсов, такие как текст, JSON и XML
51%
все верно
4%
все неверно
Для тех, кто хочет расти в PHP - онлайн-митап в эту субботу:
https://meetups-online.ru/php-may-2020
- обзор малоизвестных, но крутых инструментов статического анализа кода,
- опыт разработчиков Skyeng, iSpring и Lamoda,
- плюс история про трудоустройство в европейскую компанию.
А также много общения в перерывах голосом, приглашенные эксперты, розыгрыш лицензий от JetBrains и не только.
Сохраняйте ссылку на трансляцию: https://www.youtube.com/watch?v=ZYMEb_30kuo
https://meetups-online.ru/php-may-2020
- обзор малоизвестных, но крутых инструментов статического анализа кода,
- опыт разработчиков Skyeng, iSpring и Lamoda,
- плюс история про трудоустройство в европейскую компанию.
А также много общения в перерывах голосом, приглашенные эксперты, розыгрыш лицензий от JetBrains и не только.
Сохраняйте ссылку на трансляцию: https://www.youtube.com/watch?v=ZYMEb_30kuo
Что произойдёт если опустить "break" при написании варианта (case) в конструкции switch?
Anonymous Quiz
6%
Парсер PHP выдаст ошибку.
81%
Код продолжит выполнение внутри следующего case, что может привести к ошибкам.
0%
Браузер пользователя выдаст ошибку.
10%
Парсер, дойдя до следующего case, автоматически выйдет из switch-а
2%
Код продолжит выполнение внутри следующего case и выдаст ошибку.
1%
Не знаю
Какой результат выполнения следующего кода?
Anonymous Quiz
26%
5 31 6.2
11%
4 31 7.5
4%
5 31 7
6%
5 31 6
50%
5 31 7.5
3%
Не знаю
[PHP 7.4] Что будет в переменной $arr?
Anonymous Quiz
11%
[ArrayIterator]
13%
[5 6 7 8]
58%
[5 6 7]
2%
[ ]
8%
возникнет ParseError
7%
Не знаю
Что выведет код - echo var_dump($unsetVar); ?
Anonymous Quiz
6%
0
47%
NULL
11%
ничего не выведет
31%
возникнет ошибка
4%
Не знаю
Какая функция выведет "php"?
Anonymous Quiz
4%
a()
26%
b()
11%
c()
41%
b() и c()
17%
никакая, будет ParseError
Объяснение 👆 и спасибо за него автору канала @phpyh
Функция является функцией генератора только если она содержит хотя бы один
Отличие обычной функции от функции генератора в том, что первая при обращении выполняется сразу, а вторая лишь возвращает обходимый объект со ссылкой на свой код (собственно, генератор). Код тела функции генератора начинает выполняться только в момент вызова любого метода генератора. Как правило, это происходит неявно при обходе генератора в цикле.
В предложенной задаче только
Данный нюанс может иметь очень большое значение. Например, при оборачивании генерирующего курсора в транзакцию.
Неправильно (подумайте, почему):
Правильно:
Функция является функцией генератора только если она содержит хотя бы один
yield
(https://www.php.net/manual/ru/language.generators.syntax.php). Тип возвращаемого значения Generator
не делает функцию функцией генератора. Отличие обычной функции от функции генератора в том, что первая при обращении выполняется сразу, а вторая лишь возвращает обходимый объект со ссылкой на свой код (собственно, генератор). Код тела функции генератора начинает выполняться только в момент вызова любого метода генератора. Как правило, это происходит неявно при обходе генератора в цикле.
В предложенной задаче только
a()
и c()
являются функциями генератора, и ни одна из них в этом скрипте так и не начнёт выполняться. Функция b()
является обычной функцией и при обращении отработает синхронно: сначала выведет 'php', затем получит объект генератора от a()
и вернет его незапущенным. https://3v4l.org/kpIIuДанный нюанс может иметь очень большое значение. Например, при оборачивании генерирующего курсора в транзакцию.
Неправильно (подумайте, почему):
/**
* @psalm-param callable(): Generator $cursor
*/
transactionally(callable $cursor): Generator
{
$connection->beginTransaction();
$result = $cursor(); // try/catch/rollback опущены
$connection->commit();
return $result;
}
Правильно:
/**
* @psalm-param callable(): Generator $cursor
*/
transactionally(callable $cursor): Generator
{
$connection->beginTransaction();
yield from $cursor(); // try/catch/rollback опущены
$connection->commit();
}
3v4l.org
Online PHP editor | output for kpIIu
Run your php code online; get statistics, vld output and compare output from all versions.