Promoted Properties Compatibility¶
<?php
interface i {
// no promoted property
function __construct(int $a);
}
class x implements i {
// promoted property
function __construct(private int $a) {}
}
class y extends x {
// valid extension of a promoted property
function __construct(int $a) {}
}
?>
Promoted properties are defined in a constructor signature. They cannot be defined in an abstract method, so they are not allowed in an abstract constructor: this is true in an abstract class and in an interface.
On the other hand, it is allowed to extend promoted properties without the promotion, and vice versa.
See Also¶
PHP Features¶
Last updated: 14 July 2026