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를 더욱 재미있는 언어로 만들어 줍니다.

0 조회
Back to Blog

관련 글

더 보기 »