9P by GN⁺ 3일전 | ★ favorite | 댓글 5개
  • PHP 8.5파이프 연산자(|>) 가 공식 추가되어, 함수형 프로그래밍 스타일의 체이닝이 가능해짐
  • 파이프 연산자는 왼쪽 값오른쪽 함수(callable)의 인자로 전달하는 문법적 설탕(syntax sugar) 역할을 하며, 복잡한 데이터 변환 파이프라인을 간결하게 작성할 수 있음
  • 기존에는 중첩 호출 혹은 임시 변수 남발이 필요했던 코드가 가독성 좋은 체인 표현식으로 바뀌어, 유지보수성과 활용도가 크게 향상됨
  • F#, OCaml, Elixir 등 여러 함수형 언어의 유사 기능에서 영감을 받았으며, PHP 내부에서도 여러 번 제안과 개선 끝에 2025년에 드디어 정식 도입됨
  • 파이프 연산자는 앞으로 Partial Function Application(부분적 함수 적용), 함수 합성 연산자 등 함수형 패러다임 확장과도 밀접하게 연결될 예정

  • PHP 8.5(2025년 11월 예정)에서 오랜 시간 커뮤니티에서 요구한 작은 변화지만 큰 잠재력을 가진 파이프 연산자(|>) 가 추가됨
  • 구현은 단순하지만, 코드의 표현력을 비약적으로 높여주는 기능으로 평가됨

PHP 8.5 파이프 연산자란?

  • 파이프 연산자 |>왼쪽의 값을 오른쪽 함수에 인자로 전달하는 간단한 연산자임
    • 함수의 파라미터 입력을 단순화해주는 문법적 설탕(syntax sugar)
  • 예시:
    $result = "Hello World" |> strlen(...);   
    // 위 코드는 아래와 동일한 의미를 가짐   
    $result = strlen("Hello World")  
    
  • 여러 함수를 연결(chain)할 수 있어 데이터 변환 파이프라인을 한 줄씩 작성 가능
    $result = $arr  
        |> fn($x) => array_column($x, 'tags')  
        |> fn($x) => array_merge(...$x)  
        |> array_unique(...)  
        |> array_values(...);  
    
  • 기존 방식대로라면 복잡하게 중첩하거나, 임시 변수를 많이 선언해야 하는 불편함이 존재함
  • 이 연산자는 유닉스/리눅스 셸의 파이프(|) 와 유사하게 설계되어 직관성이 높음

도입 배경과 역사

  • F#, OCaml, Elixir 등 함수형 언어의 파이프와 유사한 개념임
  • PHP에서도 여러 라이브러리가 유사한 기능을 제공하나, 성능 저하복잡성 문제가 발생함
  • Hack/HHVM(Facebook의 PHP 포크)에서 유래, PHP에서도 2016년 최초 제안 이후 여러 번 RFC가 부결됨
  • 2025년 드디어 표준 문법으로 통과, First Class Callables(배열 함수 호출 문법) 등 이전 도입 기능과 연계

활용 예시와 특징

  • 복잡한 배열 처리, 문자열 가공, 데이터 스트림 처리 등에서 임시 변수 없이 직관적으로 함수 연결 가능
  • match() 등 단일 식만 허용되는 문맥에서도 체인 사용이 가능해져 코드 활용도가 극대화됨
  • 오른쪽에는 함수 호출 뿐만 아니라 클로저(Closure), 고차 함수 반환 등 다양한 패턴을 활용 가능

함수형 패러다임 강화

  • 파이프는 임의의 함수, 클로저, 고차 함수 모두와 결합될 수 있음
  • 예시: 조건적(Null-safe) 체인, Maybe Monad, 스트림 처리 등 다양한 함수형 패턴과 자연스럽게 호환
  • 파이프 + maybe() 같은 고차 함수로 null 안전 파이프라인도 구현 가능

향후 발전 방향

  • Partial Function Application(부분 함수 적용)과의 결합이 예정되어, 더욱 다양한 함수 조합이 가능해질 전망
  • 함수 합성 연산자(composition operator)도 제안 중으로, 복수 map 등 체인을 한 번에 결합하는 최적화가 가능해질 것

파이프 연산자는 단순한 문법 추가 이상의 생산성·가독성·확장성 혁신을 제공하며, PHP 8.5 이후 함수형 프로그래밍 스타일 코드 작성이 훨씬 강력해질 것으로 기대됨

ECMA 에도 넣어주십시오~~~

좋네요 ㅎㅎ 파이썬에도 관련 논의가 이어지고 있는 것으로 알고 있는데 부디 유사 기능이 추가되었으면 좋겠네요.

PHP 8.5(2024년 11월 예정) -> PHP 8.5(2025년 11월 예정)

애증의 언어에서 이제 다시 돌아볼만한 언어가 되어가고 있는 PHP...!

좋당... 부럽당...