Re: [RFC] Pattern Matching

From: Date: Wed, 03 Dec 2025 15:53:46 +0000
Subject: Re: [RFC] Pattern Matching
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-129525@lists.php.net to get a copy of this message
On Tue, Dec 2, 2025, at 10:32 PM, Dmitry Derepko wrote: >> On Dec 3, 2025, at 12:03 AM, Larry Garfield <larry@garfieldtech.com> wrote: >> >> $filtered = array_filter($arr, is Point(x: <10)); > > Btw, it looks incorrect and short closure is preferable here > array_filter($arr, fn($x) => $x is Point()) As I said, that's not actually a syntax I'm proposing. Just spitballing that it would be nice to be able to remove the fn($x) => $x boilerplate at some point. But that's not for this RFC; for now, the fact that you can wrap a pattern up into a short closure is sufficient for reuse. > Or if it works with DFA > array_filter($arr, ? is Point()) > > If your example illustrated a pattern as an argument I think it’s not > valid case, because a pattern is something after “is”? The point, > enumerated types or values. And “is” here is an > action/function/intention to match left and right operands. > > But kotlin style is perfectly matched here > > array_filter($arr, { $it is Point() }) Ilija would agree with you, and has been arguing for a { $0 + 3 } type syntax for extra-short closures for a while now. :-) But that's not in scope for the moment. --Larry Garfield

« previous php.internals (#129525) next »