Les espaces de noms
Utilisation des espaces de noms
Les espaces de noms
PHP Manual

## Définition de l'espace de noms

L'espace de noms est déclaré en utilisant le mot clé namespace, devant être au tout début du fichier. Par exemple :

Exemple #1 Définition de l'espace de noms

`<?php
namespace MyProject::DB;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>`
Le nom d'un espace de noms peut être utilisé dans plusieurs fichiers.

L'espace de noms peut contenir des classes, des constantes et des fonctions, mais pas de code libre.

La définition de l'espace de noms a pour conséquence ce qui suit :

- Dans un espace de noms, tous les noms de classes, de fonctions, et de constantes, dans leurs définitions, sont automatiquement préfixés par le nom de l'espace de noms. Le nom de la classe est toujours le nom complet, i.e. dans l'exemple ci-dessus, la classe est appelée MyProject::DB::Connection.
- Les définitions de constantes créent les constantes, qui sont composées du nom de l'espace de noms et du nom de la constante. Comme les constantes de classe, les constantes de l'espace de noms ne peuvent contenir que des valeurs statiques.

- Le nom de classe non-qualifié (i.e., nom ne contenant pas ::) est résolu au moment de l'exécution, en suivant cette procédure :

  1. La classe est recherchée dans l'espace de noms courant (i.e. en préfixant le nom avec le nom de l'espace de noms courant) sans tenter de la charger automatiquement.
  2. La classe est recherchée dans l'espace de noms globale, sans tenter de la charger automatiquement.
  3. Le chargement automatique pour le nom de l'espace de noms courant est tenté.
  4. Si la dernière tentative échoue, la recherche échoue.

- Le nom de la fonction non-qualifié (i.e. nom ne contenant pas ::) est recherché au moment de l'exécution tout d'abord dans l'espace de noms courant, puis, dans l'espace global.

- La constante non-qualifiée est recherché tout d'abord dans l'espace de noms courant, puis, dans les constantes globales.

Voir aussi les règles complètes de résolution de noms.

Les espaces de noms
Utilisation des espaces de noms
Les espaces de noms
PHP Manual