С php.net :
Что такое пространства имен? В самом широком
Пространства имен определения являются способом
инкапсулирующие элементы. Это видно
как абстрактное понятие во многих местах.
Например, в любой операционной системе
каталоги служат для группы связанных
файлы, и выступать в качестве пространства имен для
файлы внутри них. Как бетон
Например, файл foo.txt может существовать в
оба каталога / home / greg и в
/ home / other, но две копии файла foo.txt
не может сосуществовать в одном каталоге.
Кроме того, для доступа к foo.txt
файл вне / home / greg
каталог, мы должны предварять
имя каталога с именем файла, используя
разделитель каталогов, чтобы получить
/home/greg/foo.txt. Это же
Принцип распространяется на пространства имен в
мир программирования.
Таким образом, как упоминалось в другом плакате, пространства имен можно использовать для группировки элементов.
Чтобы понять, почему это может быть полезно, предположим, что вы хотите написать плагин для, скажем, Wordpress, и вы хотите создать класс с именем «MyClass». Проблема, однако, в том, что вы не представляете, написал ли какой-либо другой разработчик другой плагин Wordpress, используя класс с именем «MyClass». Поэтому, чтобы избежать конфликтов имен, вместо этого вы называете свой класс «MyPluginMyClass». Это раздражает, но, вероятно, позволяет избежать конфликтов имен.
Но затем наступает выпуск PHP 5.3, который наконец поддерживает пространства имен (предположим, что Wordpress и все серверы, на которых он развернут, обновлен до PHP 5.3). Теперь вы можете создать пространство имен, скажем «MyPlugin», и заключить в него «MyClass». Сделав это, вы можете опубликовать свой плагин, не беспокоясь о том, что ваша версия «MyClass» будет конфликтовать с чужой версией «MyClass».