programing

외부에서 계산된 변수를 사용한 콜백 함수

css3 2023. 7. 24. 22:45

외부에서 계산된 변수를 사용한 콜백 함수

기본적으로 다음과 같은 작업을 수행하고 싶습니다.

$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$avg = array_sum($arr) / count($arr);
$callback = function($val){ return $val < $avg };

return array_filter($arr, $callback);

이것이 실제로 가능합니까?익명 함수 외부의 변수를 계산하여 내부에서 사용?

사용할 수 있습니다.use키워드: 상위 범위에서 변수를 상속합니다.이 예에서는 다음을 수행할 수 있습니다.

$callback = function($val) use ($avg) { return $val < $avg; };

자세한 내용은 익명 기능에 대한 설명서 페이지를 참조하십시오.

PHP 7.4 이상을 사용하는 경우 화살표 기능을 사용할 수 있습니다.화살표 함수는 외부 변수를 자동으로 캡처하여 다음을 수행할 필요가 없는 익명 함수를 정의하는 보다 간결한 방법입니다.use:

$callback = fn($val) => $val < $avg;

화살표 함수가 얼마나 간결한지를 고려할 때, 당신은 합리적으로 그것들을 내에서 직접 쓸 수 있습니다.array_filter호출:

return array_filter($arr, fn($val) => $val < $avg);

글로벌 변수 사용(예: $GLOBAL['avg']

$arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
$GLOBALS['avg'] = array_sum($arr) / count($arr);
$callback = function($val){ return $val < $GLOBALS['avg'] };

$return array_filter($arr, $callback);

언급URL : https://stackoverflow.com/questions/4588714/callback-function-using-variables-calculated-outside-of-it