Re: Re: [RFC] [Concept] Class Constant visibility modifiersin PHP 7.1+
| From: | Xinchen Hui | Date: | Tue, 08 Sep 2015 01:11:12 +0000 |
| Subject: | Re: Re: [RFC] [Concept] Class Constant visibility modifiersin PHP 7.1+ | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-88111@lists.php.net to get a copy of this message | ||
Sent from my iPhone
> On Sep 8, 2015, at 02:09, Andrea Faulds <ajf@ajf.me> wrote:
>
> Hi Stas,
>
> Stanislav Malyshev wrote:
>>
>> Private and protected methods and properties are private for a reason -
>> they may be radically changed or gone when the code is changing, and
>> thus external code should not rely on them, and the way to ensure it is
>> to deny that code access to them. However, I have hard time seeing how
>> that would apply to constants - they shouldn't really change,
>
> Why not? A constant's value doesn't change at runtime, but nothing stops you changing
> the value in a new version. A real-world example for you: phpng changed the values of the IS_*
> constants in the Zend Engine.
>
>> and if
>> they do, they either shouldn't be constant, or something in your world
>> changed fundamentally (i.e. scientists discovered that PI actually
>> equals to 4).
>
> Constants in code aren't necessarily natural constants.
>
> I wonder if you find in your code constant that you need
>> to hide because you foresee it changing - should it really be a constant
>> at all?
>
> If I have a value specified in the source code which will not change at runtime, and which I
> don't want to expose as part of my public API... what exactly do you propose it should be? I
> don't see why a constant isn't fitting.
>
public static final as Java does
Thanks
> Thanks.
>
> --
> Andrea Faulds
> http://ajf.me/
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php