Hi internals, With the introduction of enums, it's now possible for constants to hold objects. However, this works only when using the `const X = Y` syntax, not when using `define('X', Y)`, which still excludes objects.
I've submitted https://github.com/php/php-src/pull/7149 to relax the restriction. This means that define() would accept everything apart from recursive arrays. An alternative here would be to allow define() to only accept enum objects in particular, but not other objects. I would prefer not to do that, as such a restriction would be rather arbitrary, now that the technical work to support objects has been done. (PS: Please keep the difference between mutability and interior mutability in mind.) Regards, Nikita