self и static в фабричном методе базового класса
class BaseModel
{
public static function createSelf(): self
{
return new self();
}
public static function createStatic(): static
{
return new static();
}
}
class Invoice extends BaseModel {}
echo get_class(Invoice::createSelf()), ' ', get_class(Invoice::createStatic());
Что будет выведено?
- BaseModel Invoice
- BaseModel BaseModel
- Invoice Invoice
- Invoice BaseModel
