New in PHP 8.5: Asymmetric Visibility for Static Properties

This minor addition brings asymmetric visibility—already available for instance properties—to static properties as well.

Previously, this was valid syntax:

 final class PublicPrivateSetClass {
    public private(set) string $instanceProperty;
}

As of PHP 8.5, you can now do the same with static properties:

 final class PublicPrivateSetClass {
    public private(set) static string $staticProperty;
}

While not the most groundbreaking feature, it improves consistency in the language—which is always a welcome change.

3 points · 2 comments · view on lemmy.world

2 Comments

SomeRandomNoob@discuss.tchncs.de · 0 pts · 1y (1 reply)

I like this feature (for both static and non-static properties). It just reads kinda cringe with both the "public" and "private" keywords for the same property.

dominik@chrastecky.dev · 1 pts · 1y

I like it as well, recently had one use case where it would have been the best solution, sadly php-cs-fixer chokes on that so I had to do it with property hooks.