Re: [RFC] Static property asymmetric visibility

From: Date: Tue, 26 Nov 2024 09:57:38 +0000
Subject: Re: [RFC] Static property asymmetric visibility
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-126053@lists.php.net to get a copy of this message
Hi Am 2024-11-25 17:52, schrieb Larry Garfield:
Static property asymmetric visibility was left out of the original RFC, because it seemed like it would be hard and of little use. Turns out, Ilija found a way to make it easy. (Ilija is smart.) So here's a small RFC to add aviz to static properties, because we can't think of a reason to NOT do so. https://wiki.php.net/rfc/static-aviz
The RFC has the status “Draft” and does not appear to be linked in the overview at https://wiki.php.net/rfc. Is it intended to be open for discussion yet? Regarding the RFC contents: I am not sure the behavior of private(set) implying final is obvious for static properties. Consider this example (https://3v4l.org/bvQjM):
    <?php
    class Foo {
        public static $baz;
    }
    class Bar extends Foo {
        public static $baz;
    }
    Foo::$baz = '2';
    Bar::$baz = '1';
    var_dump(Foo::$baz, Bar::$baz);
Non-static properties only have $this-> for property access, but with static properties you can distinguish between self:: and static::, which makes overriding a private(set) static property meaningful, because they are actually independent properties. Best regards Tim Düsterhus

« previous php.internals (#126053) next »