Как гласит название, я хочу создать экземпляр класса из статического метода того же класса. Я догадался, что могу сделать что-то вроде этого:
class Foo{
public $val;
public static function bar($val){
$inst = new Foo;
$inst->val = $val;
return $inst;
}
}
Который поэтому позволяет мне это делать.
$obj = Foo::bar("some variable");
Это здорово.
Итак, теперь вопросы. Есть ли более простой способ сделать это, о котором я не знаю, или о каких-либо ярлыках для достижения того же результата? Существуют ли какие-либо преимущества или недостатки создания экземпляра таким образом?
Спасибо.