소개
익명 함수는 사용자 정의 이름이 없는 함수입니다. 이러한 기능을 클로저라고도 합니다. 또는 람다 기능. 때로는 한 번만 사용할 수 있는 기능이 필요할 수 있습니다. Closure는 정의된 환경을 닫는 익명 함수입니다. 그 안에 use 키워드를 지정해야 합니다. 인라인 콜백 함수를 생성하기 위해 익명 함수를 가장 많이 사용합니다.
구문
$var=function ($arg1, $arg2) { return $val; };
- 함수 키워드와 여는 괄호 사이에 함수 이름이 없습니다.
- 익명 함수 정의는 표현식이므로 함수 정의 뒤에 세미콜론이 있습니다.
- 함수는 변수에 할당되고 나중에 변수의 이름을 사용하여 호출됩니다.
- 나중에 호출할 수 있는 다른 함수에 전달되면 이를 콜백이라고 합니다.
- 외부 함수 내에서 반환하여 외부 함수의 변수에 액세스할 수 있도록 합니다. 이를 폐쇄라고 합니다.
익명 함수 예시
예시
<?php $var = function ($x) {return pow($x,3);}; echo "cube of 3 = " . $var(3); ?>
출력
그러면 다음과 같은 결과가 생성됩니다. -
cube of 3 = 27
콜백으로서의 익명 기능
다음 예에서 익명 함수는 내장 usort() 함수에 대한 인수로 사용됩니다. usort() 함수는 비교 함수를 사용하여 주어진 배열을 정렬합니다.
예시
<?php $arr = [10,3,70,21,54]; usort ($arr, function ($x , $y) { return $x > $y; }); foreach ($arr as $x){ echo $x . "\n"; } ?>
출력
그러면 다음과 같은 결과가 생성됩니다. -
3 10 21 54 70
클로저로서의 익명 기능
Closure는 use 키워드를 사용하여 범위 밖의 변수에 액세스할 수 있는 익명 함수이기도 합니다.
예시
<?php $maxmarks=300; $percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;}; echo "marks=285 percentage=". $percent(285); ?>
출력
그러면 다음과 같은 결과가 생성됩니다. -
marks=285 percentage=95