반응형
Web Development · PHP __construct
PHP 생성자 —
__construct로 객체 생성 시 자동 초기화
setter 5번 호출 대신 한 줄로
시작 오늘 분석할 코드
class Member{ private $id, $lastname, $firstname, $email, $password; public function __construct($id, $lastname, $firstname, $email, $password){ $this->setId($id); $this->setLastname($lastname); $this->setFirstname($firstname); $this->setEmail($email); $this->setPassword($password); } // getter / setter 5쌍 ... // 미구현 메서드 (이름만) public function regist(){} public function registMail(){} public function edit(){} public function resendPassword(){} public function delete(){} }
1 __construct — 생성자
__construct는 객체가 만들어지는 순간 자동 호출되는 특수 메서드. 매개변수를 받아 초기 상태를 설정하는 게 일반적.
// 생성자 없는 경우 $m = new Member(); $m->setId(1); $m->setLastname("..."); // 5번 호출 필요 // 생성자 있는 경우 $m = new Member(1, "성", "이름", "...", "..."); // 한 줄로 초기화 완료
2 미구현 메서드 — 의도적 빈 메서드
public function regist(){} // 회원정보 입력 public function registMail(){} // 입력완료 메일 public function edit(){} // 정보 수정 public function delete(){} // 탈퇴 처리
본문이 비어 있는 메서드. "앞으로 구현할 자리"를 미리 정해두는 것 — 일종의 설계 의도 표시.
3 추상 메서드 (자바와 비교)
자바에서는 abstract 키워드로 명시적 추상 메서드를 만든다. PHP도 비슷한 기능 가능.
abstract class Member { abstract public function regist(); // 본문 X — 자식 클래스가 반드시 구현 }
반응형
4 PHP 8 단축 — Constructor Property Promotion
class Member { public function __construct( private int $id, private string $lastname, private string $firstname, private string $email, private string $password, ) {} // 멤버 선언 + 생성자 + setter 한 번에 끝 }
핵심 한 줄 요약
__construct객체 생성 시 자동 호출되는 초기화 메서드
매개변수new로 객체 만들 때 전달
setter 호출생성자 안에서 검증과 함께 저장
미구현 메서드본문 빈 채로 둔 자리표시
vs abstract의도가 명확하면 abstract 키워드 사용
PHP 8 PPConstructor Property Promotion으로 짧게
__destruct짝 — 객체 소멸 시 자동 호출
반응형
'php' 카테고리의 다른 글
| PHP 이터레이터 패턴 — 컬렉션을 foreach로 순회 완전 정리 (0) | 2026.06.18 |
|---|---|
| PHP IteratorAggregate — implements와 컬렉션 클래스 완전 정리 (0) | 2026.06.18 |
| PHP 개인테스트 — form + class + getter/setter 연동 완전 정리 (0) | 2026.06.18 |
| PHP runtime — 런타임 상태와 메서드 오버라이딩 완전 정리 (0) | 2026.06.18 |
| PHP trait — 수평 상속(다중 코드 재사용) 완전 정리 (0) | 2026.06.18 |
왕진 블로그

댓글