If you don't read the [url=http://beeblex.com/search.php?s=l:php.internals&o=1]PHP Internals[/url] mailing list, you've probably missed most of the recent discussion on namespaces.
Since you're reading this entry, there's a good chance you've read one of the other posts about the [url=http://www.php.net/~derick/meeting-notes.html]results of the 2005 PDM[/url], though.
Of particular interest (especially given the recent Date class [url=http://beeblex.com/lists/index.php/php.internals/20324?s=l:php.internals]debacle[/url]) is the point on [url=http://www.php.net/~derick/meeting-notes.html#name-spaces]namespaces[/url].
At the meeting, the core developers decided that "\" is a logical choice for the namespace operator as it is the only single non-alpha-numeric character on (US) keyboards that isn't yet an operator.
This has been met with [url=http://beeblex.com/lists/index.php/php.internals/20447?s=l:php.internals]some[/url] [url=http://beeblex.com/lists/index.php/php.internals/20586?s=l:php.internals]resistance[/url].
For some reason, people don't seem to think that "\" is a good choice for the namespace operator. I'm not sure why this is... \ seems logical to me.
[b]UPDATE[/b]: As you see, the title was changed from Shaloshayim Nekudotayim to Shalosh Nekudotayim. Check the comments--thanks Hebrew speakers.
Jessie Hernandez (the author of one of the [url=http://www.zend.com/zend/week/pat/pat44.txt]existing namespace patches[/url]) originally proposed the use of ":" (as in "namespace:class::var").
This was rejected by the core developers because : is already an operator: it is used in the [url=http://php.net/ternary]ternary operator[/url]. It would make things like the following break:
[php]
$foo = $bar?moo:oink:meow;
[/php]
So, if $bar is true, does $foo become moo:oink? or oink:meow? So, no good.
One solution is to enforce whitespace around the ternary colon:
[php]
$foo = $bar?moo:oink : meow;
[/php]
I hope this never makes it into PHP. Fortunately, Rasmus has already [url=http://beeblex.com/lists/index.php/php.internals/20458]denied it[/url].
So, there have been a number of other ideas. Most of them are simply impossible ("." ? Seriously... it's the concatenation operator!).
I have absolutely no problem with "\". Some people have argued that "\" looks too much like "/". This is simply bogus. The same people think that ":" vs ";" is OK, but it's essentially the same comparison.
Barring \ (for whatever reason), I would like to see ":::". Yes, it's a little longer than the other operators, but who really cares? It's ONE extra keypress (you've already got shift held down from the previous colon.) Even Ilia [url=http://beeblex.com/lists/index.php/php.internals/20579]agrees[/url].
Why ::: ? Well, it makes sense. :: resolves scope, ::: should resolve the scope's scope. Right?
So, what's with the title of this entry, you ask? I had to do a little research to come up with it, and it might be completely wrong as I don't speak/write Hebrew, but, since :: is called "Paamayim Nekudotayim" (or "double colon" in English), I propose "Shaloshayim Nekudotayim" which (hopefully) means "triple colon." Feel free to correct me (-:
S
"Shalosh" really means 3 in Hebrew , but there's no such thing as "Shaloshayim" , because the "-ayim" suffix comes to suggest that it's doubled , therefore shaloshim would sound like 2 times 3 ( = 6 ).
So, "Shalosh Nekudotayim" sounds better.
"Pamayim" is like "twice" in english
you cant say "three-ice" :)
But you can say "thrice"...