Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
$factor = 2;
$scale = function (int $n) use ($factor) {
return $n * $factor;
};
$factor = 10;
echo $scale(3), ' ', $factor, "\n";6 10
- Ждать
30, будто замыкание читает$factorпри вызове:use ($factor)копирует значение при создании замыкания, и поздние присваивания оно не видит. - Считать
use ($factor)дополнительными параметрами, которые заполняет вызов: список заполняется один раз, при создании замыкания, а вызов передаёт только$n.
- Что выведет программа с
use (&$factor)и почему? - Зачем замыканию вообще нужен
use, чтобы видеть$factor?