Hey NikiC,

On Mon, Jun 14, 2021, 16:35 Nikita Popov <nikita....@gmail.com> wrote:

> 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.)
>

I rarely encounter any code using `define()` for anything more than
extremely minimal environment details these days, and even then, it usually
leads to loading an immutable `Environment` object that is then passed
through dependency injection (container or not) to runtime services.

What are the possible use-cases for this, besides enumeration types?

>

Reply via email to