Re: [RFC] Pattern Matching
| From: | Rob Landers | Date: | Tue, 02 Dec 2025 06:52:14 +0000 |
| Subject: | Re: [RFC] Pattern Matching | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-129503@lists.php.net to get a copy of this message | ||
On Tue, Dec 2, 2025, at 07:51, Rob Landers wrote:
> On Mon, Dec 1, 2025, at 22:36, Larry Garfield 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. :-)
>>
>> --
>> Larry Garfield
>> larry@garfieldtech.com
>
> One thing I didn't see covered: accessing static variables in a class:
>
> class Point {
> public static $origin = new Point(0,0,0);
> }
>
> How do we pattern match to this? Is it the obvious Point::$origin? Same with class constants?
>
> — Rob
I literally saw it just after sending the email and missed the "undo send" by
milliseconds. Sorry for the noise.
— Rob