Помогите немного понять как правильно работать со статическими конструкторами в условиях наследования.
Припустим у нас есть 2 класса (один наследует второй). У родительского класса есть статический конструктор. Если вызвать этот конструктор через дочерний класс - какой объект создастся?
Пример кода:
class Foo
{
static public function create() {
return new self();
}
}
class Bar extends Foo
{
}
$bar = Bar::create();
На примере этого кода: на сколько я понимаю в переменной $bar будет объект класса Foo. Если это так - то подскажите как правильно работать со статическими конструкторами, чтобы в результате получать объект того класса, к которому обращаемся?
P.S. Просьба не предлагать использовать __construct, у меня есть оправданная необходимость иметь несколько конструкторов, а на сколько мне известно - статические конструкторы - это единственный способ в PHP иметь несколько конструкторов.