Readonly class Bar cannot extend non-readonly class Foo

Description

A readonly class cannot extends a non-readonly class; a non-readonly class cannot extends a readonly class. Both classes must be readonly or non-readonly to be able to extends one another. This is due to readonly being applied to all available properties, which is ambiguous with class hierarchies.

Example

<?php

class Foo
{
}

readonly class Bar extends Foo
{
}

?>

Solutions

  • Make both classes readonly.

  • Make both classes non-readonly.

  • Make both classes non-readonly and apply readonly per properties.