Выбор ответа Middle ООП, трейты и интерфейсы обновлено

final и видимость констант

Вопрос

Какое утверждение верно для PHP 8.1+?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Константу класса можно объявить final, и наследник её не изменит. С PHP 8.1 константы класса бывают final.

Варианты ответа

  1. Константы класса всегда публичные, модификаторы у них запрещены
  2. Метод final можно переопределить через трейт в наследнике
  3. final класс можно унаследовать, если не переопределять методы
  4. Константу класса можно объявить final, и наследник её не изменитправильный ответ

Разбор

С PHP 8.1 константы класса бывают final. Видимость у констант есть с PHP 7.1 (private const). final-метод нельзя переопределить ни в наследнике, ни через трейт в наследнике. От final-класса наследоваться нельзя вообще.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.