콜백 함수
콜백 함수는 다른 함수에 인수로 전달되는 함수다.
기존 함수를 콜백 함수로 사용할 수 있다.
함수를 콜백 함수로 사용하려면 함수의 이름이 포함된 문자열을 다른 함수의 인수로 전달한다.
콜백 함수 사용
array_map() 함수에 콜백을 전달하여 배열의 모든 문자열의 길이를 계산해보자.
PHP
<?php function my_callback($item) { return strlen($item); } $strings = ["apple", "orange", "banana", "coconut"]; $lengths = array_map("my_callback", $strings); print_r($lengths); ?>
기본 예시
Array(
[0] => 5
[1] => 6
[2] => 6
[3] => 7
)
PHP 7 부터는 익명의 함수를 콜백 함수로 전달할 수 있다.
PHP
<?php $strings = ["apple", "orange", "banana", "coconut"]; $lengths = array_map( function($item) { return strlen($item); } , $strings); print_r($lengths); ?>
기본 예시
Array(
[0] => 5
[1] => 6
[2] => 6
[3] => 7
)
사용자 정의 함수의 콜백
사용자 정의 함수와 메서드는 콜백 함수를 인수로 사용할 수도 있다.
사용자 정의 함수 또는 메서드 내에서 콜백 함수를 사용하려면 변수에 괄호를 추가하여 콜백 함수를 호출하고 일반 함수와 마찬가지로 인수를 전달한다.
PHP
<?php function exclaim($str) { return $str . "! "; } function ask($str) { return $str . "? "; } function printFormatted($str, $format) { echo $format($str); } printFormatted("안녕하세요", "exclaim"); printFormatted("안녕하세요", "ask"); ?>
기본 예시
안녕하세요! 안녕하세요?참고
W3C School - PHP Callback Functions
W3C School - PHP Tryit Editor