Re: [Vote] Partial Function Application v2
| From: | Larry Garfield | Date: | Wed, 11 Feb 2026 00:02:51 +0000 |
| Subject: | Re: [Vote] Partial Function Application v2 | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-130068@lists.php.net to get a copy of this message | ||
On Mon, Feb 9, 2026, at 3:09 PM, Tim Düsterhus wrote:
> Hi
>
> On 11/20/25 22:59, Larry Garfield wrote:
>> https://wiki.php.net/rfc/partial_function_application_v2
>
> As part of my work on the PFA-for-$this RFC I noticed one thing that is
> left undefined in the RFC text and AFAICT not currently tested with the
> implementation PR, but appears to “just work” is late-static binding
> with
static:::
>
> <?php
>
> class P {
> public static function m(string $a): void {
> echo __METHOD__, PHP_EOL;
> var_dump($a);
> }
>
> public static function get() {
> return static::m(?);
> }
> }
>
> class C extends P {
> public static function m(string|array $b): void {
> echo __METHOD__, PHP_EOL;
> var_dump($b);
> }
> }
>
> P::get()(a: 'a');
> C::get()(b: []);
>
> This correctly results in:
>
> P::m
> string(1) "a"
> C::m
> array(0) {
> }
>
> being output.
>
> Can you please make sure to include this as an Erratum within the RFC
> text (and also make sure it gets a proper test in the PR, including all
> possible OPcache variations)?
>
> Best regards
> Tim Düsterhus
Thanks Tim, good catch. I have added an errata to that effect; Arnaud's on vacation this week
but will add some tests when he returns.
--Larry Garfield