PHP에서는 기본적으로 생성자 오버로딩이 되지 않는다.
다른 방법으로는 func_get_args()
를 이용한 방법과 팩토리 패턴을 이용한 방법이 있는데,func_get_args()
를 이용하게 되면 인수를 검사기 위해 코드가 지저분해 질 수 있다.
때문에 팩토리 패턴을 이용하는 방법을 추천한다.
팩토리 패턴을 이용
class Poo { protected $name; public function __construct() { } public static function withName($name) { $instance = new self(); $instance->setName($name); return $instance; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } $poo = Poo::withName('홍길동');