여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - 기초 - 콜백 함수
PHP – 기초 – 콜백 함수
2년전 작성
1년전 수정

콜백 함수

콜백 함수는 다른 함수에 인수로 전달되는 함수다.

기존 함수를 콜백 함수로 사용할 수 있다.
함수를 콜백 함수로 사용하려면 함수의 이름이 포함된 문자열을 다른 함수의 인수로 전달한다.

콜백 함수 사용

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");
?>

기본 예시
안녕하세요! 안녕하세요?

참고

Mingg`s Diary
밍구
밍구
공부 목적 블로그