PHP - 확장 연산자: 초보자 가이드

안녕하세요, 미래의 PHP 마법사 여러분! 오늘 우리는 PHP 확장 연산자의 세상으로 흥미로운 여정을 떠납니다. 코드를 한 줄도 작성해 본 적이 없어도 걱정하지 마세요 - 나는 여러분의 친절한 안내자가 되겠습니다. 단계별로 함께 진행하겠습니다. 이 튜토리얼의 끝을 맺을 때쯤에는 프로처럼 배열을 확장할 수 있을 것입니다!

PHP - Spread Operator

확장 연산자는 무엇인가요?

예제로 들어가기 전에, 이 마법적인 "확장 연산자"가 무엇인지 이해해 보겠습니다. PHP에서 확장 연산자는 세 개의 점(...)으로 표현됩니다. 이 것은 마치 마법仗처럼 배열의 요소나 객체의 속성을 "확장"할 수 있습니다. 상상해 보세요. 당신이 컬러풀한 보석이 가득 담긴 상자를 가지고 있고, 그것을 테이블 위에 뿌리기를 원한다면 - 이것이 바로 확장 연산자가 배열 요소들에게 하는 일입니다!

이제 이 작동 방식을 실제 예제를 통해 보겠습니다.

예제 1: 배열 결합

간단한 것으로 시작해 보겠습니다 - 두 개의 배열을 결합하는 것:

$fruits = ['apple', 'banana', 'cherry'];
$vegetables = ['carrot', 'broccoli', 'spinach'];

$healthy_foods = [...$fruits, ...$vegetables];

print_r($healthy_foods);

이 코드를 실행하면 다음과 같이 보입니다:

Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => carrot
[4] => broccoli
[5] => spinach
)

여기서 무슨 일이 일어났죠? 확장 연산자(...)는 $fruits와 $vegetables의 모든 요소를 가져다가 새로운 배열 $healthy_foods에 뿌렸습니다. 두 상자의 내용을 하나의 더 큰 상자에 담는 것과 같습니다!

예제 2: 배열에 요소 추가

이제 기존 배열에 요소를 추가하는 방법을 보겠습니다:

$colors = ['red', 'blue', 'green'];
$more_colors = ['yellow', ...$colors, 'purple'];

print_r($more_colors);

이는 다음과 같은 출력을 보여줍니다:

Array
(
[0] => yellow
[1] => red
[2] => blue
[3] => green
[4] => purple
)

보세요, 'yellow'를 맨 앞에 추가하고 'purple'를 맨 뒤에 추가하면서 원래 $colors 배열을 중간에 뿌렸습니다. 책의 중간에 한 장을 삽입하는 것과 같습니다!

예제 3: 함수 인수

확장 연산자는 배열만 아니라 함수 인수에도 사용할 수 있습니다. 예제를 보겠습니다:

function make_sandwich($bread, $filling, $sauce) {
return "You made a $filling sandwich with $sauce on $bread bread!";
}

$ingredients = ['whole wheat', 'turkey', 'mustard'];

echo make_sandwich(...$ingredients);

이는 다음과 같은 출력을 보여줍니다:

You made a turkey sandwich with mustard on whole wheat bread!

여기서 확장 연산자는 $ingredients 배열을 풀어서 make_sandwich 함수에 각 요소를 별도의 인수로 전달했습니다. 마치 가방에서 재료를 꺼내어 테이블 위에 펼치는 것과 같습니다!

예제 4: 배열 복사

확장 연산자는 배열의 얕은 복사를 쉽게 만들어 줍니다:

$original = [1, 2, 3];
$copy = [...$original];

$original[0] = 100;

print_r($original);
print_r($copy);

이는 다음과 같은 출력을 보여줍니다:

Array
(
[0] => 100
[1] => 2
[2] => 3
)
Array
(
[0] => 1
[1] => 2
[2] => 3
)

보시다시피, $original을 변경해도 $copy는 영향을 받지 않습니다. 원본이 바뀌어도 사본은 그대로 남아 있습니다!

예제 5: 객체 사용

확장 연산자는 PHP 8.1 이상에서 객체에도 사용할 수 있습니다. 어떻게 되는지 보겠습니다:

$person1 = ['name' => 'Alice', 'age' => 30];
$person2 = ['name' => 'Bob', 'job' => 'Developer'];

$merged_person = [...$person1, ...$person2];

print_r($merged_person);

이는 다음과 같은 출력을 보여줍니다:

Array
(
[name] => Bob
[age] => 30
[job] => Developer
)

'Bob'이 'Alice'를 덮어쓰는 것을 보세요. 객체를 확장할 때 중복된 키가 있으면 뒤에 오는 키가 우선됩니다 - 친절한 인수 합병과 같습니다!

결론

이제 여러분! 우리는 PHP 확장 연산자를 다양한 예제를 통해 탐구했습니다. 배열 결합에서 함수 인수까지, 이 작은 세 개의 점(...)은 여러분의 PHP 도구箱에서 강력한 도구입니다.

기억하세요, 프로그래밍은 연습이 전부입니다. 따라서 이 예제들을 실험하고 수정하고 자신만의 것을 만들어 보세요. 얼마 지나지 않아 프로처럼 배열과 객체를 확장할 수 있을 것입니다!

계속 코딩하고, 배우고, 가장 중요한 것은 PHP를 즐겨보세요!

방법 설명
배열 결합 Use [...$array1, ...$array2] to combine arrays
요소 추가 Use [...$array, 'new_element'] to add elements
함수 인수 Use function_name(...$array) to unpack arrays into function arguments
배열 복사 Use $copy = [...$original] for shallow copying
객체 확장 Use [...$object1, ...$object2] to merge object properties (PHP 8.1+)

기쁜 코딩을 기원합니다, 확장 연산자와 함께!

Credits: Image by storyset