Вступить в клуб →
сложнаявопросPHP 8: типы и поведение языка

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

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела