Les espaces de noms résolvent le problème des collisions de noms lors de l'importation de classes et de fonctions à partir de bibliothèques.
Sans espaces de noms, si vous incluez deux bibliothèques qui définissent par hasard une fonction/classe avec le même nom (c'est-à-dire deux bibliothèques qui incluent toutes les deux une classe appelée 'utilisateur'), cela échouera.
Sans le support des espaces de noms en PHP, la plupart des bibliothèques ont pris l'habitude de préfixer les noms de leurs fonctions/classes avec quelque chose de probablement unique, dans le but d'éviter les collisions de noms. Le problème est que cela crée des noms de fonctions ou de classes plus longs.
L'exemple donné ici est celui de la classe d'exception:
PEAR_Form_Loader_Validate_Table_Element_Validator_Exception.
Vous pouvez importer à partir d'un long espace de noms dans votre propre portée locale en tant qu'alias en utilisant le mot clé 'AS' - un nom que vous choisissez. Ainsi, vous pouvez toujours avoir un nom court de classe de votre choix dans votre portée locale.
Le code suivant applique un 'alias' appelé DbConnection à Zend::DB::Connection.
use Zend::DB::Connection as DbConnection