본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP __construct — 생성자와 미구현 메서드 완전 정리

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

 

 

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짝 — 객체 소멸 시 자동 호출
반응형

댓글