학습
PHP PHP 컬렉션
PHP PHP 컬렉션 — 중급
PHP 컬렉션
1. 도입 (왜 배워야 하는가)
PHP에서 컬렉션은 데이터 구조를 효율적으로 관리하고 조작하는 데 필수적인 역할을 합니다. 실무에서 데이터베이스에서 가져온 데이터나 사용자 입력 데이터를 다룰 때, 그 데이터를 어떻게 저장하고 처리할지가 중요한 문제입니다. 예를 들어, 여러 개의 사용자 정보를 저장하고 이를 필터링하거나 정렬해야 하는 상황에서 컬렉션을 사용하면 훨씬 더 직관적이고 효율적으로 작업할 수 있습니다.
컬렉션을 모르면, 데이터 처리에 있어 비효율적이고 복잡한 코드를 작성하게 되어 유지보수성이 떨어지고, 버그가 발생할 가능성이 높아집니다. 따라서 컬렉션의 개념을 이해하고 활용하는 것은 프로그래머로서 필수적인 능력입니다.
2. 핵심 개념 설명
컬렉션 정의
컬렉션은 데이터의 집합을 의미하며, 일반적으로 배열, 리스트, 맵 등의 형태로 구현됩니다. PHP에서는 배열(array)과 객체(object)를 조합하여 컬렉션을 구현합니다.
실생활 비유
컬렉션을 마트의 장바구니로 비유할 수 있습니다. 장바구니는 다양한 상품(데이터)을 담을 수 있는 도구입니다. 장바구니에서 상품을 추가하거나 제거하고, 특정 조건에 맞는 상품을 찾는 등의 작업을 할 수 있습니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 배열 | 동일한 타입의 데이터를 순차적으로 저장하는 자료구조 |
| 리스트 | 데이터의 삽입과 삭제가 용이한 구조 |
| 맵 | 키와 값의 쌍으로 데이터를 저장하는 구조 |
3. 기본 코드 예제
가장 기본적인 컬렉션인 배열을 사용해보겠습니다.
<?php
// 배열 생성
$fruits = array("사과", "바나나", "오렌지");
// 배열에 요소 추가
$fruits[] = "포도"; // 포도를 추가
// 배열 출력
foreach ($fruits as $fruit) {
echo $fruit . "\n"; // 각 과일을 출력
}
?>
실행 결과
사과
바나나
오렌지
포도
코드 설명
$fruits라는 배열을 생성하고 초기값으로 "사과", "바나나", "오렌지"를 담습니다.$fruits[] = "포도";를 통해 배열에 "포도"를 추가합니다.foreach문을 사용하여 배열의 모든 요소를 출력합니다.- 컬렉션은 데이터를 효율적으로 관리하는 데 필요하다.
- 배열, 리스트, 맵 등의 형태로 컬렉션을 구현할 수 있다.
- 실무에서 자주 사용되는 패턴을 이해하고 활용할 수 있다.
- 다음 주제로는 PHP의 객체지향 프로그래밍(OOP) 개념을 학습하는 것을 추천한다.
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니 구현
쇼핑몰에서 장바구니의 상품 정보를 관리할 때 컬렉션을 활용할 수 있습니다.
<?php
// 장바구니 배열 생성
$cart = array();
// 상품 추가 함수
function addToCart($item) {
global $cart;
$cart[] = $item; // 장바구니에 상품 추가
}
// 상품 제거 함수
function removeFromCart($item) {
global $cart;
$cart = array_diff($cart, array($item)); // 장바구니에서 상품 제거
}
// 상품 추가
addToCart("티셔츠");
addToCart("바지");
addToCart("신발");
// 장바구니 출력
foreach ($cart as $item) {
echo $item . "\n"; // 장바구니에 있는 상품 출력
}
?>
상황 설명
이 예제는 쇼핑몰에서 사용자가 장바구니에 상품을 추가하거나 제거할 수 있는 기능을 구현합니다. addToCart와 removeFromCart 함수를 통해 장바구니를 관리합니다.
예제 2: 필터링 기능
주어진 데이터에서 특정 조건을 만족하는 데이터만 필터링하는 예제입니다.
<?php
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 짝수만 필터링
$evenNumbers = array_filter($numbers, function($num) {
return $num % 2 === 0; // 조건: 짝수
});
// 결과 출력
print_r($evenNumbers);
?>
실행 결과
Array
(
[1] => 2
[3] => 4
[5] => 6
[7] => 8
[9] => 10
)
5. 흔한 실수와 주의사항
실수 1: 배열의 인덱스 오류
잘못된 인덱스를 사용해 배열에 접근하려고 하면 오류가 발생할 수 있습니다.
잘못된 코드
echo $fruits[5]; // 존재하지 않는 인덱스
올바른 코드
if (isset($fruits[5])) {
echo $fruits[5]; // 존재하는 인덱스일 때만 출력
}
실수 2: 글로벌 변수를 잘못 사용하기
글로벌 변수를 사용하면서 global 키워드를 잊어버릴 수 있습니다.
잘못된 코드
function addToCart($item) {
$cart[] = $item; // 오류 발생
}
올바른 코드
function addToCart($item) {
global $cart;
$cart[] = $item; // 글로벌 변수 사용
}