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
(단일 표현식만 허용)