Which basically means class constants are useless in their current state, right?
No, they are useful for some things (pre-defined values) and useless for others (expressions). The problem is that in classes we can do these other things - with variables. And in global space, with define(). In namespaces, we can't.
I don't think it's _required_ for the constants to be useful.
Well, depends on how you define requirements. Having out-of-class constants is not required either - Java does fine without it :) However, thinking about how people would use namespaces, I think it would be very useful. And btw we have some precedent of reusing syntax - "static" means different things as "static function" and "static variable", and very well might to acquire yet another meaning as static:: IIRC. I don't say it's necessarily good thing, but it's not without precedent.
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com