반응형
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는 구현 포함
반응형
'php' 카테고리의 다른 글
| MySQL DB Setting — XAMPP 환경 데이터베이스 초기 설정 완전 정리 (0) | 2026.06.18 |
|---|---|
| PHP 이터레이터 패턴 — 컬렉션을 foreach로 순회 완전 정리 (0) | 2026.06.18 |
| PHP __construct — 생성자와 미구현 메서드 완전 정리 (0) | 2026.06.18 |
| PHP 개인테스트 — form + class + getter/setter 연동 완전 정리 (0) | 2026.06.18 |
| PHP runtime — 런타임 상태와 메서드 오버라이딩 완전 정리 (0) | 2026.06.18 |
왕진 블로그

댓글