콜백 함수
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 4번째.
콜백 함수는 다른 함수의 인자로 전달되는 함수입니다. 함수를 즉시 호출하는 대신, 이름을 전달하여 수신하는 함수가 나중에 필요할 때 호출할 수 있도록 합니다.
함수를 콜백으로 전달하려면, 단순히 함수의 이름을 문자열로 사용하면 됩니다:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// 몇 가지 처리를 수행합니다...
$callback($username); // 콜백 함수를 호출합니다
}
processUser("Alice", "greet"); // 출력: Hello, Alice!
?>이 예제에서 "greet"는 processUser()에 콜백으로 전달됩니다. processUser() 함수는 문자열을 함수 이름으로 사용하여 콜백을 호출합니다.
콜백은 함수를 더 유연하게 만들어 주기 때문에 매우 유용합니다. 어떤 콜백을 전달하느냐에 따라 동일한 함수가 서로 다른 동작을 수행할 수 있습니다. 이 개념은 이 과정의 뒷부분에서 배우게 될 array_map() 및 array_filter()와 같은 많은 PHP 내장 함수의 기초가 됩니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
챌린지
쉬움두 개의 함수를 만드세요: 문자열을 받아 대문자로 반환하는 formatUppercase 함수와, 문자열을 받아 소문자로 반환하는 formatLowercase 함수입니다.
그 다음, 두 개의 매개변수(텍스트 문자열과 콜백 함수 이름)를 받는 applyFormat 함수를 만드세요. 이 함수는 텍스트에 콜백을 적용하고 그 결과를 반환해야 합니다.
두 개의 입력을 받게 됩니다: 작업 유형("upper" 또는 "lower")과 포맷할 텍스트입니다. 두 입력을 모두 읽고, 작업 유형에 따라 어떤 콜백을 사용할지 결정한 후, 적절한 콜백과 함께 applyFormat을 호출하여 포맷된 결과를 출력하세요.
입력 형식: 두 줄 - 첫 번째 줄은 작업 유형("upper" 또는 "lower")을 포함하고, 두 번째 줄은 포맷할 텍스트를 포함합니다.
출력 형식: 작업 유형에 따라 포맷된 텍스트
치트 시트
콜백 함수는 다른 함수의 인수로 전달되는 함수입니다. 함수를 즉시 호출하는 대신, 함수 이름을 전달하여 수신하는 함수가 나중에 필요할 때 호출할 수 있도록 합니다.
함수를 콜백으로 전달하려면 함수의 이름을 문자열로 사용하세요:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Do some processing...
$callback($username); // 콜백 함수 호출
}
processUser("Alice", "greet"); // 출력: Hello, Alice!
?>콜백은 전달하는 콜백에 따라 서로 다른 동작을 수행할 수 있게 함으로써 함수의 유연성을 높여줍니다.
직접 해보기
<?php
// 입력 읽기
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: 아래에 코드를 작성하세요
// formatUppercase 함수 생성
// formatLowercase 함수 생성
// applyFormat 함수 생성
// 작업 유형에 따라 사용할 콜백 결정
// 적절한 콜백과 함께 applyFormat 호출
// 결과 출력
echo $result;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.