Re: [RFC] Partial Function Application for instance of non-static methods ("$this")

From: Date: Thu, 22 Jan 2026 16:35:53 +0000
Subject: Re: [RFC] Partial Function Application for instance of non-static methods ("$this")
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-129864@lists.php.net to get a copy of this message
On Thu, Jan 22, 2026, at 10:08 AM, Tim Düsterhus wrote: > Hi > > Am 2026-01-22 16:33, schrieb Derick Rethans: >>> >>> https://wiki.php.net/rfc/partial_function_application_this >> >> We propose allowing a named parameter $this: ? to be combined with the >> “scope resolution operator” syntax of referring to a method. >> >> I can't say I am entirely sold on the syntax here — starting with a $ >> makes it look like a variable. > > Yes, it certainly requires some getting used to it. It's the best we > could come up with, but if there are any better suggestions, we're open > to hearing those. I'd like to note the “Rejected Features” section, > since it lists some non-workable alternatives we considered. I too am very much in favor of this functionality, though not a fan of the syntax either. My previous, un-finished thinking was for $$->foo('blah'), which would translate to a mixed fn that just forwards the call. I... hadn't actually thought about also partially applying the method, since the use cases I can think of would all be "call this method on the value piped from the previous pipe step." (Or, read this property.) That would allow it to be embedded within an array_map() call or similar, since it's technically independent of both PFA and pipes. If it's being partially applied, then I don't see a way around the redundant typing, which is annoying. At least not without vastly better type inference than we have today. So, I think I am mainly interested in the degenerate case where $this is the only thing being partially applied, which seems like a common enough case that it could have a nicer version? I'm just spitballing at this point, I think. But I do like the direction. --Larry Garfield

« previous php.internals (#129864) next »