화살표 함수란?
화살표 함수는 기존의 익명 함수(클로저)를 더 간단하게 작성할 수 있게 해주는 문법이다. 주로 단일 표현식을 반환하는 간단한 함수를 작성할 때 유용하다.
기본 문법
fn (매개변수) => 표현식주요 특징
1. 간결한 문법
기존의 익명 함수와 비교했을 때 화살표 함수는 매우 간결한 문법을 제공한다.
// 기존 익명 함수
$double = function($x) {
return $x * 2;
};
// 화살표 함수
$double = fn($x) => $x * 2;2. 자동 변수 상속
화살표 함수는 외부 스코프의 변수를 자동으로 상속받아 사용할 수 있다.
$multiplier = 3;
$calculate = fn($x) => $x * $multiplier;
// $multiplier가 자동으로 사용 가능3. 단일 표현식 제한
화살표 함수는 오직 하나의 표현식만 포함할 수 있으며, 이 표현식의 결과가 자동으로 반환된다.
4. 타입 힌트 지원
$sum = fn(int $a, int $b): int => $a + $b;실제 사용 예시
1. 배열 매핑
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map(fn($n) => $n * 2, $numbers);2. 배열 필터링
$numbers = [1, 2, 3, 4, 5];
$evens = array_filter($numbers, fn($n) => $n % 2 === 0);3. 배열 정렬
$users = [
['name' => '김철수'],
['name' => '이영희']
];
usort($users, fn($a, $b) => $a['name'] <=> $b['name']);장점
- 코드의 가독성이 향상됐다
- 간결한 문법으로 생산성이 증가했다
- 변수 상속이 단순화됐다
- 함수형 프로그래밍 스타일을 지원한다
제한사항
- 여러 줄의 로직을 포함할 수 없다
- 단일 표현식만 가능하다
- 복잡한 로직에는 기존의 익명 함수를 사용해야 한다
사용 시 주의사항
- 복잡한 로직이 필요한 경우 기존의 익명 함수를 사용하는 것이 좋다.
- 단순한 반환 값을 가진 함수에 가장 적합하다.
- 타입 힌트를 적극적으로 활용하면 코드의 안정성을 높일 수 있다.
결론
PHP 7.4의 화살표 함수는 간단한 익명 함수를 작성할 때 매우 유용한 기능이다. 특히 배열 조작이나 콜백 함수를 사용하는 경우에 코드를 더욱 간결하고 읽기 쉽게 만들어준다. 하지만 복잡한 로직이 필요한 경우에는 기존의 익명 함수를 사용하는 것이 더 적절할 수 있다.