본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP IteratorAggregate — implements와 컬렉션 클래스 완전 정리

by 왕진 2026. 6. 18.
반응형

 

 

Web Development · PHP IteratorAggregate

PHP implements + IteratorAggregate —
객체에 foreach를 적용하기 위한 인터페이스

Members 컬렉션 클래스가 ArrayIterator를 반환
시작 오늘 분석할 코드
class Members implements IteratorAggregate{ private $members = []; public function add(Member $member){ $this->members[] = $member; } public function getIterator(){ return new ArrayIterator($this->members); } }

1 implements — 인터페이스 구현

PHP의 인터페이스는 "이런 메서드를 구현하라"는 약속이다. IteratorAggregate는 PHP가 기본 제공하는 인터페이스로, "내 객체를 foreach로 순회 가능하게 만들고 싶다"는 의지를 표명.

class Members implements IteratorAggregate { public function getIterator() { ... } // 인터페이스가 요구하는 메서드 구현 } foreach ($members as $m) { ... } // 이제 가능

2 컬렉션 패턴

Member 객체 여러 개를 한 자리에 모아두는 컬렉션 클래스. 단순 배열보다 의도가 분명하고 메서드(add, remove, find 등)를 추가할 수 있다.


3 ArrayIterator

PHP가 제공하는 클래스로, 일반 배열을 Iterator로 감싸준다. 직접 구현하지 않고 이미 만들어진 도구를 활용.

return new ArrayIterator($this->members); // ↑ // 내부 배열을 그대로 활용

 

반응형

 

4 타입 힌트 — Member $member
public function add(Member $member){ ... } // ↑ // 매개변수가 Member 객체여야 한다는 강제

다른 타입을 넘기면 TypeError. 안전성을 보장.


핵심 한 줄 요약

implements인터페이스 구현 키워드
IteratorAggregateforeach 가능한 객체 표시
getIterator반복자를 반환하는 약속된 메서드
ArrayIterator배열을 Iterator로 감싸는 PHP 클래스
컬렉션 패턴객체 여러 개를 한 클래스로 묶기
타입 힌트매개변수 타입 강제
vs traitinterface는 시그니처만, trait는 구현 포함
반응형

댓글