화살표 함수란?

화살표 함수는 기존의 익명 함수(클로저)를 더 간단하게 작성할 수 있게 해주는 문법이다. 주로 단일 표현식을 반환하는 간단한 함수를 작성할 때 유용하다.

기본 문법

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']);

장점

  1. 코드의 가독성이 향상됐다
  2. 간결한 문법으로 생산성이 증가했다
  3. 변수 상속이 단순화됐다
  4. 함수형 프로그래밍 스타일을 지원한다

제한사항

  1. 여러 줄의 로직을 포함할 수 없다
  2. 단일 표현식만 가능하다
  3. 복잡한 로직에는 기존의 익명 함수를 사용해야 한다

사용 시 주의사항

  1. 복잡한 로직이 필요한 경우 기존의 익명 함수를 사용하는 것이 좋다.
  2. 단순한 반환 값을 가진 함수에 가장 적합하다.
  3. 타입 힌트를 적극적으로 활용하면 코드의 안정성을 높일 수 있다.

결론

PHP 7.4의 화살표 함수는 간단한 익명 함수를 작성할 때 매우 유용한 기능이다. 특히 배열 조작이나 콜백 함수를 사용하는 경우에 코드를 더욱 간결하고 읽기 쉽게 만들어준다. 하지만 복잡한 로직이 필요한 경우에는 기존의 익명 함수를 사용하는 것이 더 적절할 수 있다.