Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<Override::__constructReturnTypeWillChange::__construct>
^Predefined AttributesLast updated: Mon, 26 Oct 2026

The ReturnTypeWillChange attribute

(PHP 8 >= 8.1.0)

Introduction

As of PHP 8.1.0, a tentative phase of transitioning to return type declarations for internal class methods began.

Most non-final internal methods now require overriding methods to declare a compatible return type. Otherwise, a deprecation notice is emitted during inheritance validation warning that the signature violates covariance rules.

In a future PHP version, method signature checking will become strict, and mismatches will cause a fatal error.

In case the return type cannot be declared for an overriding method due to PHP cross-version compatibility concerns, or the overriding method declares an incompatible return type, a #[\ReturnTypeWillChange] attribute can be added to silence the deprecation notice.

Warning

When overriding methods defined in user-defined classes, return types are checked strictly. A fatal error is emitted on mismatch, even if the overriding method is marked with the attribute.

The ReturnTypeWillChange attribute suppresses deprecation warnings only during the tentative return type phase. After strict type checking is enforced, the attribute will stop working and a mismatch in the overriding method signature of an internal class will cause a fatal error.

Class synopsis

#[\Attribute(\Attribute::TARGET_METHOD)]
final class ReturnTypeWillChange {
/* Methods */
public function __construct()
}

Table of Contents


<Override::__constructReturnTypeWillChange::__construct>
^Predefined AttributesLast updated: Mon, 26 Oct 2026