хм, они что, правда решили делать NS\sub_NS\Class::func() ?
да они офигели!
чем :: плох?
конфликты между именами разрешаются очень легко запретом на определение класса и функции с одним и тем же именем внутри одного namespace'а (может быть, за исключением global, или как там назовут отсутствие namespace'a, чтобы не порвать ВС).
хм, тогда почему в zend.c есть такое:
static HashTable *global_function_table = NULL;
static HashTable *global_class_table = NULL;
static HashTable *global_constants_table = NULL;
static HashTable *global_auto_globals_table = NULL;
static HashTable *global_u_function_table = NULL;
static HashTable *global_u_class_table = NULL;
static HashTable *global_u_constants_table = NULL;
static HashTable *global_u_auto_globals_table = NULL;
-~{}~ 10.12.05 23:58:
опять же, в приведённом примере неймспейсов:
PHP:
import M1 as M2;
echo M2::$var;
echo M2::c;
echo M2::func();
echo M2::C::func();
var_dump(new M2::C);