Пятничная PHP-викторина: немного приключений программиста Брэда, одна странная последовательность и призы
Привет! Обещали — делаем: продолжаем серию мини-квизов, посвященных разным языкам программирования в нашем блоге (предыдущие: 1 (на знание Python, PHP, Golang и DevOps), 2 (полностью по Go)). Сегодняшний выпуск посвящён PHP.
Под катом — восемь вопросов, немного приключений программиста Брэда, одна странная последовательность и клёвый мерч в качестве призов. Квиз проходит до 4 июля.
Правила игры
Первому, кто правильно ответит на них, отправим набор сувенирки Авито: футболку с php-слоном, носки и холиварные кости (можно будет погадать, на каком бэкенд-языке и фронтенд-фреймворке будет написан ваш новый проект).
Десяти другим правильно ответившим отправим Авито-носки. Разыграем с помощью рандомайзера. Он же определит, к кому поедут ещё две футболки и набор костей.
Вопросы и варианты ответов
Вопрос 1
Что выведет код:
Варианты ответов:
- Array (1, 2, 3)
- Array (1, 2, 2)
- Array (3, 2, 1)
- Ошибка
Вопрос 2
Что выведет код:
$value) {
echo $key . ' => ' . $value . PHP_EOL;
}
echo $gen->getReturn();
Варианты ответов:
-
0 => flour 1 => wheat
-
0 => wheat 1 => flour 2 => cupcake
-
0 => flour 1 => wheat cupcake
-
cupcake
Вопрос 3
Однажды программист Брэд решил портировать одну библиотеку с Go на PHP, чтобы собрать звёзд на GitHub, и задался вопросом:
Возможна ли следующая конструкция?
Варианты ответов:
- Да, класс Foo должен реализовать интерфейс Traversable
- Да, класс Foo должен реализовывать методы интерфейса ArrayAccess
- Нет, будет ошибка, аргумент …-оператора должен быть массивом
Вопрос 4
Какой алгоритм сортировки используется в сердце PHP для таких функций, как sort и тд?
Варианты ответов:
- нерекурсивный mergesort
- heapsort (вариация smoothsort Эдсгера Дейкстры)
- quicksort с разбиением по медиане из трех
- introsort
Вопрос 5
Есть код:
Вопрос: есть ли разница между возвращаемыми значениями getLambda и getLambda2?
Варианты ответов:
- В одном случае использовано ключевое слово static:), но оно никак не влияет
- Результат getLambda2() нельзя привязать к какому-нибудь объекту
- Так нельзя писать: будет синтаксическая ошибка «Syntax error: static keyword used in wrong context»
- Closure из getLamda2() можно привязывать (bindTo) только к классам
Вопрос 6
Что выведет код:
Варианты ответов:
-
bool(false) bool(false)
-
bool(false) bool(true)
-
bool(true) bool(true)
-
bool(true) bool(false)
Вопрос 7
Что выведет код:
Варианты ответов:
- Будут выведены цифры от 0 до 39, а также Warning: A non-numeric value encountered in на каждой итерации
- Каждая итерация выведет «a» + Warning
- Странная последовательность:
a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an
Вопрос 8
Что выведет код:
test() as $id) {
echo $id, PHP_EOL;
}
echo "The end", PHP_EOL;
Варианты ответов:
-
1 2 3 32332 The end
-
1 2 3 The end
-
The end
-
32332 The end
Подведение итогов
Ответы на вопросы выложим апдейтом к посту в среду, 4 июля. Если будете решать — кладите ответы под спойлер, чтобы не портить другим фана. И не забывайте проверять личку Хабра после окончания квиза.
Enjoy!