아무거나

클로저(clouser) 본문

PHP/PHP

클로저(clouser)

전봉근 2019. 4. 3. 14:52
반응형

[PHP 클로저]

익명 함수(Anonymous function)는 말 그대로 함수의 이름이 없는 함수로 클로저(Closure) 또는 콜백(Callback) 이라고도 부르며 PHP 5.3 부터 추가된 기능이며 5.4 에서 기능이 보강되었습니다.

 

1. 클로저는 다음과 같이 function 키워드와 전달할 변수명을 정해서 작성하면 되며 익명 함수이므로 function 이름은 주지 않습니다.

   [예제코드]

   function ($name, $age) {

return 'name:'.$name.' age: '. $age;

   }

 

2. 사용은 다음과 같이 변수에 바로 할당하고 변수를 호출하면 함수가 실행된다.

   [예제코드]

   $bong = function ($name, $age) {

return 'name:'.$name.' age: '. $age;

   }

 

   // 결과는 name:bong man age: 28 이라는 문자열이 출력

   echo $bong('bong man', 28);

 

3. 클로저 외부에 있는 변수를 사용할 경우 use 키워드로 선언해 주면 되며 여러 개의 변수가 필요하면 , 를 구분자로 기술합니다.

   [예제코드]

   $name = 'bong keun';

   $age = 28;

 

   $bong = function() use($name, $age) {

return 'return:'.$name.' age: '.$age;

   };

 

   // 결과는 name:bong keun age: 28 이라는 문자열 출력

   echo $bong();

 

* 클로저는 함수나 메소드의 콜백을 만들때 매우 유용합니다. 라라벨은 다양한 곳에서 클로저를 사용하고 있으며 대표적으로는 URL을 처리하는 라우트(route) 에서 사용하고 있으므로 라라벨을 잘 사용하기 위해서는 클로저에 대한 이해가 필수적입니다.

다음은 브라우저로 "about/hello" 라는 URL 에 접근할 경우 'Hello World' 라는 문자를 출력하는 URL 라우팅 처리로 클로저를 사용하고 있습니다.

 

[예제코드]

Route::get('about/hello', function()

{

    return 'Hello World';

}); ​ 

반응형

'PHP > PHP' 카테고리의 다른 글

날짜 계산  (0) 2019.04.08
문자열중 마지막 문자 자르기  (0) 2019.04.03
PHP7 기준 빈 객체 생성 방법  (0) 2019.04.02
SQLRelay 설치(커넥션풀링 라이브러리)  (0) 2019.04.02
trait  (0) 2019.04.02
Comments