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