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.

Thanks.

--
Andrea Faulds
http://ajf.me/

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to