Les espaces de noms, en PHP, ont été conçus pour résoudre un problème de portée de variables dans de grosses bibliothèques PHP. En PHP, toutes les définitions de classes sont globales. Ainsi, lorsqu'une bibliothèque crée divers utilitaires ou API de classes publiques, l'auteur doit être prudent sur le faire que d'autres bibliothèques avec les mêmes fonctionnalités peuvent exister et ainsi, choisir des noms uniques afin que les bibliothèques puissent être utilisées ensemble. Habituellement, l'on préfixe les noms des classes avec une chaîne unique, i.e. les classes des bases de données sont préfixées par Ma_Bibliotheque_DB, etc. Lorsque la bibliothèque grossit, les préfixes s'enchaînent et l'on atteint des noms très longs.
Les espaces de noms permettent aux développeurs de gérer les noms sans pour autant avoir des noms longs à chaque fois que la classe y réfère, et résout ainsi le partage des globales partagés sans rendre le code illisible.
Les espaces de noms sont disponibles en PHP depuis la version 5.3.0. Cette section est expérimentale et est susceptible de changer.