@vovaonokhovv

В чем смысл использовать замыкания, вместо обычной передачи по параметру?

$number = 89;

$showNumber = function() use($number) {
    echo $number;
};

$showNumber();

$number = 89;

$showNumber = function($number) {
    echo $number;
};

$showNumber($number);
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А теперь попробуйте здесь передать $ref в параметрах:
function sortByDistance(array &$arr, int $ref): void
{
    usort(
        $arr,
        function (int $a, int $b) use ($ref): int {
            return abs($a - $ref) - abs($b - $ref);
        }
    );
}
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Ну вот такой синтетический пример можно придумать:
function factory () {
  $number = 17;

  return function($multiplier) use($number) {
    echo $number * $multiplier;
  };
}

$showNumber = factory(42);

$showNumber();


В вашем коде, конечно, use не нужен. Вообще, он используется почти исключительно в анонимных коллбэках, передаваемых в условный array_map - туда вы никакие дополнительные аргументы не передадите, потому что они жёстко зафиксированы, а дополнительные переменные там часто бывают нужны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы