제목에서 알 수 있듯이 같은 클래스의 정적 메서드 내에서 클래스의 인스턴스를 만들고 싶습니다. 나는 지금까지 이렇게 할 수 있다는 것을 알아 냈습니다.정적 메서드 내에서 클래스 인스턴스 만들기
class Foo{
public $val;
public static function bar($val){
$inst = new Foo;
$inst->val = $val;
return $inst;
}
}
따라서 이렇게 할 수 있습니다.
$obj = Foo::bar("some variable");
위대한 분입니다.
그럼 이제 질문입니다. 이 작업을 쉽게 수행 할 수있는 방법이 있습니까? 또는 동일한 결과를 얻는 데 필요한 단축키가 있습니까? 이런 방식으로 인스턴스를 생성하는 데있어 장점이나 단점이 있습니까?
감사합니다.
이런 식으로 일을하는 이유는 무엇입니까? 왜'$ obj = new Foo ("some variable")를 사용하지 않을까요? –
이미 어느 시점에서 만들어진 생성자로 무언가를 만드는 것은 나에게 의미가 없다. 예를 들어, 현재 프로젝트에서 Profile :: get()을 사용하여 (어느 시점에서) 이미 "생성 된"프로파일을로드합니다. 아마도 나는 생성자를 오용하거나 오버로드에 대한 대답으로 이것을 사용하고 있습니다. – daniel