- PVSM.RU - https://www.pvsm.ru -
Привет! Обещали — делаем: продолжаем серию мини-квизов, посвященных разным языкам программирования в нашем блоге (предыдущие: 1 (на знание Python, PHP, Golang и DevOps) [1], 2 (полностью по Go) [2]). Сегодняшний выпуск посвящён PHP.
Под катом — восемь вопросов, немного приключений программиста Брэда, одна странная последовательность и клёвый мерч в качестве призов. Квиз проходит до 4 июля.
Первому, кто правильно ответит на них, отправим набор сувенирки Авито: футболку с php-слоном, носки и холиварные кости (можно будет погадать, на каком бэкенд-языке и фронтенд-фреймворке будет написан ваш новый проект).
Десяти другим правильно ответившим отправим Авито-носки. Разыграем с помощью рандомайзера. Он же определит, к кому поедут ещё две футболки и набор костей.
Что выведет код:
<?php
$a = [1, 2, 3];
foreach($a as &$value) {}
foreach($a as $value) {}
print_r($a);
Варианты ответов:
Что выведет код:
<?php
function sowCrops() { return 'wheat'; }
function millWheat() { return 'flour'; }
function bake($flour) { return 'cupcake'; }
function generator() {
$flour = yield millWheat();
$wheat = yield sowCrops();
return bake($flour);
};
$gen = generator();
foreach ($gen as $key => $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
Однажды программист Брэд решил портировать одну библиотеку с Go на PHP, чтобы собрать звёзд на GitHub, и задался вопросом:
Возможна ли следующая конструкция?
<?php
print_r(...(new Foo()));
Варианты ответов:
Какой алгоритм сортировки используется в сердце PHP для таких функций, как sort и тд?
Варианты ответов:
Есть код:
<?php
class Factory {
public function getLambda(): Closure {
return function () {
printf("Here I am (%s)!n", get_class($this));
};
}
public function getLambda2(): Closure {
return static function () {
printf("Here I am (%s)!n", get_class($this));
};
}
}
Вопрос: есть ли разница между возвращаемыми значениями getLambda и getLambda2?
Варианты ответов:
Что выведет код:
<?php
$a = true;
$b = false;
$c = $a and $b;
$d = $a && $b;
var_dump($c);
var_dump($d);
Варианты ответов:
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
Что выведет код:
<?php
$a = 'a';
for ($i = 0; $i < 40; $i++) {
echo $a++, PHP_EOL;
}
Варианты ответов:
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
Что выведет код:
<?php
class TestMe {
public function test()
{
if (0) {
yield 32332;
}
return [1,2,3];
}
}
$t = new TestMe();
foreach ($t->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!
Автор: meduza
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/284502
Ссылки в тексте:
[1] 1 (на знание Python, PHP, Golang и DevOps): https://habr.com/company/avito/blog/346520/
[2] 2 (полностью по Go): https://habr.com/company/avito/blog/349088/
[3] Источник: https://habr.com/post/414481/?utm_campaign=414481
Нажмите здесь для печати.