본문 바로가기

PHP/PHP7 예비학교

[PHP] 가변 변수, 가변 함수 그리고 익명 함수(클로저, 람다식, 람다 함수)

<?php
$first = "Hello, ";
$test = function( $value ) use ( $first) {
    echo $first.$value;
};
$test("World!");	// Hello, World!
?>

가변 변수


가변 변수는 변수명을 동적으로 설정하여 사용할 수 있는 변수 이름입니다.

<?php
$text = "number";
$$text = 125;
var_dump($number)	// int(125)
?>

$text에 들어간 값을 이름으로 새로운 변수를 만들 수 있습니다.

즉, '$$text' -> '$($texet)' -> '$number'가 됨으로써 '125'를 출력합니다.

 

가변 함수


가변 함수는 변수명을 동적으로 설정하여 함수를 실행하는 것입니다.

<?php
function test($text) {
    var_dump( $text );
}

$msg = 'test';

$msg("Hello World!");	// string(12) "Hello World!"\

}
?>

 

익명 함수


익명 함수는 이름을 지정하지 않는 함수로 클로저, 람다식, 람다 함수라고 불립니다.

일반적으로 콜백 인자로 사용됩니다.

<?php
$test = function( $value ) {
    echo "Hello, ".$value;
};
$test("World!");	// Hello, World!
?>

 

부모 범위에 있는 변수를 익명 함수에 사용하려면 use 키워드를 사용합니다.

<?php
$first = "Hello, ";
$test = function( $value ) use ( $first ) {
    echo $first.$value;
};
$test("World!");	// Hello, World!
?>
반응형