Constants Are Mutable

<?php

class x {
    public string $p = 'abc';
}

const A = new x;

A->p = 'def';

echo A->p; // def

?>

Since PHP 8.2, it is possible to use an object with a constant: this is the new initializer feature.

With a object in a constant, it is still possible to call methods or properties, and mutate the constants. Indeed, the constant is still representing the same object, but the properties in the objects are not constants.

See Also

PHP Features

Last updated: 14 July 2026