diff --git a/language/predefined/attributes/nodiscard.xml b/language/predefined/attributes/nodiscard.xml index 6f4618c53e..dbdc0973e3 100644 --- a/language/predefined/attributes/nodiscard.xml +++ b/language/predefined/attributes/nodiscard.xml @@ -1,5 +1,5 @@ - + Атрибут NoDiscard @@ -34,6 +34,20 @@ и подавит предупреждение при переносе кода на PHP 8.5. + + + Атрибут #[\NoDiscard] применяется к конкретному объявлению + функции или метода, на котором его написали, а предупреждение выдаётся на + основе того объявления, которое вызвали на самом деле. Поэтому добавление + атрибута #[\NoDiscard] к методу интерфейса или абстрактному + методу не приводит к предупреждению, поскольку вызывается метод реализации + или переопределяющий метод. Аналогично метод, который переопределяет метод + с атрибутом #[\NoDiscard], не выдаёт предупреждение, если + только его самого не пометили этим атрибутом. Напротив, метод, + импортированный из трейта, сохраняет атрибут, поскольку метод трейта + копируется в использующий класс, как будто его объявили там. + +