Что выведет код Junior Функции, замыкания, генераторы спрашивают часто обновлено
use по значению и по ссылке
Вопрос
Что выведет скрипт (PHP 8.3)? По строке на каждый вывод.
<?php
$a = 1;
$b = 1;
$byValue = function () use ($a) { return $a; };
$byRef = function () use (&$b) { return $b; };
$arrow = fn() => $a + $b;
$a = 10;
$b = 10;
echo $byValue(), ' ', $byRef(), ' ', $arrow(), "\n";
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 1 10 2. use ($a) скопировал 1 при создании. use (&$b) держит ссылку и видит 10.
Что выведет
1 10 2
Разбор
use ($a) скопировал 1 при создании. use (&$b) держит ссылку и видит 10. Стрелочная функция тоже захватила значения при создании: 1 + 1 = 2.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.