http://wiki.php.net/rfc/namespaceseparator- Разделителем нэймспецчов в php 5.3 стал «\» PHP: <?php $var = new \Foo\Bar\Baz(); Foo\Bar::static_method(); $class_name = "Foo\\Bar"; ?>
Лучше так, чем ::, из-за которого была такая гора проблем, что капец. PHP динамический язык, из-за этого использовать тот же :: для namespaces было не возможно без урезания функциональности. Почему именно \? Потому что самый короткий, легко обрабатывается парсером, не конфликтует ни с чем.
Честно говоря не совсем понимаю нафига они вообще нужны, не ужели кто-то серьёзно собирается писать на РНР скрипты такого уровня что они будут прямо необходмиы ? Может к 7-й версии РНР вообще будет круче Java или C# ?
Vladson Возьми ZF, прикрути к нему пару библиотек ещё для работы со всякой фигнёй и рано или поздно какие-то функции/классы друг на друга наложатся, или константы. Пространства имён это всё позволяют не только разделить, но и не придумывать своим функциям и классам префиксов - запихал в контейнер и можешь свои функции называть как хочешь, хоть fopen, хоть ещё что-то. К тому же я думаю по немногу все internal functions будут по немногу переезжать в namespaces тоже.
Чо кошмарного то? В сях или пайтоне для склеивания нескольких строк используется. Главное, что набирать его удобно.
а нафига это правда в ПиЭйчПе? я как-то всегда засовыванием всего этого чуда в класс справлялся.. не путать с ООП )) чем больше будет стрёмных наворотов (абсолютно не практичных) - тем дольше будет работать парсер (или чё там за ним.. "лексиматор" какой-нить?), и к чему? не, я понимаю, что хороший понт - дороже денег.. у Чаушеску например золотой унитаз ваще был.. но его жопе не посрать ли было, извиняюсь за каламбур То-есть может создателям PHP стоит остановиться и перестать наварачивать язык сверх необходимости?
что бы можно было чужой код вставлять в свой проект, не боясь того, что он где то что то перекроет именованием.
Я когда увидел поплакал над умершей идеей пользовать неймспейс. А потом попробовал попаисать и ничё так. Только две вещи смущают: 1) \ слишком высокий относительно букв; 2) конструкция должна начинаться с \: new \datetime\date::now(). В питоне \ для указания интерпретатору о том, что это не конец строки. Строки сами склеиваются.
нэмспейсы эт хорошо, не придется чужих исходников переписывать. а вообще жду такую фишку explode('/', 'trata/tadata')[0];