PHP 화살표 함수: 간결한 익명 함수 사용법

PHP 화살표 함수 – 간결하고 효과적인 익명 함수 사용법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

PHP 개발자, Laravel 프레임워크 사용자, 배열 및 컬렉션 처리에 관심 있는 중급 이상 개발자

핵심 요약

  • 화살표 함수 정의: fn($arg) => ... 형식의 간결한 익명 함수로, function 키워드 대체 가능
  • 주요 특징:
  • use 명시 없이 외부 변수 참조 가능
  • 단일 표현식만 허용 (복잡 로직은 전통적 함수 사용 권장)
  • array_map, array_filter, Laravel 컬렉션 연산 시 강력한 활용 가능
  • 활용 사례: 배열 필터링, 간단한 로직 처리, 컬렉션 메서드 내 사용

섹션별 세부 요약

1. 화살표 함수란?

  • 익명 함수의 간결한 표현 방식
  • fn($a, $b) => $a + $b 형식으로 작성 가능
  • 전통적 function 문법 대비 코드 길이 30% 이상 줄임

2. 사용 시기 및 예시

  • 사용 시기:
  • 배열/컬렉션 처리 (array_map, array_filter, Laravel Collections)
  • 단일 표현식이 필요한 간단한 로직
  • 예시:

```php

$sum = fn($a, $b) => $a + $b;

echo $sum(2, 3); // 5 출력

```

3. 전통적 함수와의 차이점

  • 문법: fn($arg) => ... 대신 function($arg) { ... } 사용
  • 반환 방식: 표현식 오른쪽 값 자동 반환 (return 명시 필요 없음)
  • 변수 스코프: 외부 변수를 use 없이 직접 참조 가능

4. 외부 변수 사용 예시

  • $multiplier = 2;
  • $result = array_map(fn($n) => $n * $multiplier, [1,2,3]);
  • 결과: [2,4,6]

5. 사용 권장/비권장 시기

  • 권장:
  • 배열 필터링 (array_filter(fn($user) => $user['age'] >= 18))
  • 단일 표현식 로직 (예: fn($n) => $n * $n)
  • 비권장:
  • 다중 문장이 필요한 복잡 로직 (전통적 함수 사용)

6. Laravel 컬렉션 활용 예

  • collect($numbers)->every(fn($n) => $n % 2 === 0);
  • array_reduce($users, fn($carry, $user) => $carry && $user['age'] >= 18, true);

7. 문서 요약

  • 화살표 함수는 단일 표현식 기반의 간결한 익명 함수
  • 배열/컬렉션 연산 시 코드 가독성 향상 효과
  • use 명시 생략, 자동 반환 기능으로 개발 효율성 증대

결론

  • 권장사항: 배열/컬렉션 처리, 간단한 로직 시 fn() 사용
  • 주의사항: 복잡 로직은 전통적 function 문법 사용
  • Laravel 개발자에게 유리: 컬렉션 메서드 내에서의 간결한 표현 가능
  • 기본 형식: fn($arg) => $arg * 2 (단일 표현식만 허용)