+3  A: 

I'm not sure I got your point at all... PHP constants are not like C preprocessor macros. You cannot create a macro and replace an operator with it—it just won't work:

<?php
define('ADD', '+');
echo (3 ADD 5); // Parse error: syntax error, unexpected T_STRING
?>

Even if it worked, what's the purpose? Hiding the syntax of a language to make it look like another language you are more familiar with is a quite a waste of time, not to mention that it makes it harder for other coders to work on the project. If you think language X looks cooler, well, just code X rather than PHP :)

Update

Using the namespace separator in places where it's required to be a string (such autoloaders and callbacks) offers little difficulty when using single quotes since the only places where it needs to be escaped is right before a quote or another backslash, thus it can be written as-is:

$callback = 'Foo\Bar';

All other options look to me like unnecessary complexity:

$callback = "Foo\\Bar";
$callback = 'Foo' . NAMESPACE_SEPARATOR . 'Bar';
$callback = "Foo{$namespace_separator}Bar";
Álvaro G. Vicario
well, you completly missed the point. My question concerns usage of namespace separator in autoloaders and callbacks, where, generally, you use it as a part of string.
ts
yes, if you know your "Foo" and "Bar". And that is not always given. You face often things like, say, *$packagee .'\\' . $class*
ts