Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 익명 함수

<시간/>

소개

익명 함수는 사용자 정의 이름이 없는 함수입니다. 이러한 기능을 클로저라고도 합니다. 또는 람다 기능. 때로는 한 번만 사용할 수 있는 기능이 필요할 수 있습니다. 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