future PHP: 부분 함수 적용
발행: (2026년 4월 15일 PM 10:06 GMT+9)
2 분 소요
원문: Dev.to
Source: Dev.to
부분 함수 적용
function a(int $one, int $two) {
return $one + $two;
}
function addFive(int $one) {
return a($one, 5);
}
// or
$addFive = fn(int $one) => a($one, 5);
부분 함수 적용을 사용하면 다음과 같이 쓸 수 있습니다:
$addFive = a(?, 5);
중첩 함수
$slug = fn (string $str) => strtolower(implode('-', str_word_count($str, 1)));
vs.
$slug = strtolower(implode('-', str_word_count(?, 1)));
파이프 연산자 사용
$slug = $str
|> (fn($str) => str_word_count($str, 1))
|> (fn($str) => implode('-', $str))
|> (fn($str) => strtolower($str));
vs.
$slug = $str
|> str_word_count(?, 1)
|> implode('-', ?)
|> strtolower(?);
장점
- 구현에서는 생성된 클로저에
static키워드를 추가하여 성능을 향상시킵니다. ?자리표시자 외에도, 세 개 이상의 인자를 갖는 함수나 메서드에 특히 유용한 부분 적용을 위해 줄임표(...)를 사용할 수 있습니다.
function a(int $one, int $two, int $three) {
return $one + $two + $three;
}
// 줄임표 사용
$minimumFive = a(5, ...);
// 물음표 자리표시자를 사용한 동등한 형태
$minimumFive = a(5, ?, ?);
$minimumFive(6, 7); // returns 18
? 자리표시자는 기본 함수의 시그니처를 명시적으로 보여주고, 줄임표는 더 적은 타이핑을 선호하는 개발자를 위한 간결한 문법을 제공합니다.
자세한 내용은 RFC를 참고하세요.
이러한 추가 기능은 PHP를 더욱 재미있는 언어로 만들어 줍니다.