On Mon, Dec 1, 2025, 10:26 PM Larry Garfield <[email protected]> wrote:
> On Mon, Dec 1, 2025, at 3:57 PM, Paul Dragoonis wrote: > > On Mon, Dec 1, 2025, 9:39 PM Larry Garfield <[email protected]> > wrote: > >> Hi folks. Ilija and I would like to present our latest RFC endeavor, > pattern matching: > >> > >> https://wiki.php.net/rfc/pattern-matching > >> > >> You may note the date on the RFC is from 2020. Yes, we really have had > this one in-progress for 5 years. :-) (Though it was inactive for many of > those years, in fairness.) Pattern matching was intended as the next > follow up to Enums, as it's a stepping stone toward full ADT support. > However, we also feel it has enormous benefit on its own for simplifying > complex comparisons. > >> > >> This RFC has been through numerous iterations, including a full > implementation rewrite just recently that made a number of features much > easier. We have therefore included two patterns that were previously > slated for later inclusion but turned out to be trivially easy in the new > approach. (Variable pinning and numeric comparison.) > >> > >> Nonetheless, there are two outstanding questions on which we are > looking for feedback. > >> > >> Naturally given the timing, we will not be calling a vote until at > least late January, regardless of how the discussion goes. So, plenty of > time to express your support. :-) > > > > Hi Larry, > > > > Looking decent so far. > > > > match() seems a bit clunky in current state. Is it just your code > > example, and you could come with another one? > > > > The match(true) and repeating of $somevar over and over is the clunky > part. > > > > Normal match($somevar) .. this is clean and works like switch() so > > people are happy adopting it .. whereas match() and match() is, look > > similar but you have to use them differently ? > > > > Can you clarify? > > I think you're misinterpreting the example. > > The first block under "match() enhancement" is the syntax we propose to > have. > > The second block is what it would decompose to, aka, an explanation of > what it means. While you could write the second block, you really > shouldn't when the first block is available and better. > Hi Larry, You are correct. Ignore my comment I thought it was showing the opposite. match() looks good 👍 Many thanks, Paul > --Larry Garfield >
