Re: [VOTE] enum SortDirection

From: Date: Wed, 18 Mar 2026 20:32:56 +0000
Subject: Re: [VOTE] enum SortDirection
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-130397@lists.php.net to get a copy of this message
Hi On 3/18/26 19:38, Levi Morrison wrote:
Tim, I am curious if adding a backing value in a future release would be considered a breaking change or not, something like: enum SortDirection {
     case Ascending = 1;
     case Descending = -1;
} The exact values don't matter for my question, only whether or not it would be considered a backwards compatibility break.
That's complicated to answer. From a LSP POV changing a UnitEnum to a BackedEnum is just “adding new things” (and indeed the BackendEnum interface extends UnitEnum), which is safe from a backwards compatibility PoV. However I've seen folks doing instanceof checks in the folks to decide whether to use the ->name or ->value for serialization. Changing from UnitEnum to BackedEnum would introduce a behavioral change there. All that said, I believe making an enum backed is almost always a mistake, since there is rarely a single obvious "blessed" scalar representation of an enum value, doubly so for the featured enum of this RFC, as explained by the RFC. See also the first paragraph of this email from me in another discussion thread: https://news-web.php.net/php.internals/129408 Best regards Tim Düsterhus

« previous php.internals (#130397) next »