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

Reply via email to