2008/10/15 Greg Beaver <[EMAIL PROTECTED]>:
>
> Read it and discuss.

Hello,

First of all I'd like to thank Greg for his efforts to move the
discussion in a positive direction. From a PHP user's point of view,
it's comforting to see that this kind of discussion can still take
place with a cool head and methodically.

I have a question about #1 and #2: aren't they functionally the same?
Based on current resolution rules (the ones used in the engine, not
the ones currently documented in the manual) it is my understanding
that there is only ever one namespace [resolution] operator and no
namespace separator, because there is no hierarchy in namespaces. The
"::" people use (myself included) to separate tokens in the
namespace's name are for decoration only (a "visual aid", as per the
old RFC) and they have no meaning. Therefore, users should be able to
use any number of consecutive colons in a namespace name, before the
namespace operator, just like we can use any number of consecutive
underscores in class names and anywhere else.

If the "::" contained in a namespace's name are separators, doesn't it
mean that namespaces are de facto nested? Which brings me back to the
current documentation, in which "new B::C" inside of namespace A would
create an instance of class C from namespace A::B, as opposed to the
current engine where it returns an instance of C from namespace B. I
don't know if I'm reading too much into it, but as a user, the
existence of "namespace separators" means to me that there multiple
namespaces and that they are nested and it leads me to expect the old
functionality (instance of A::B::C). Since that's not the case
anymore, I wouldn't expect the number of consecutive ":" to be
limited, making #1 and #2 the same. In fact, I wouldn't expect colons
to be authorized in namespace names at all.

Hoping I'm not opening a can of worms :)

JD

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

Reply via email to