Définition des espaces de noms
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Bien que du code PHP valide puisse ĂȘtre contenu dans un espace de noms,
seuls les types de code suivants peuvent ĂȘtre affectĂ©s par les espaces de noms :
les classes (incluant les abstraites, les traits et les enums), les interfaces,
les fonctions et les constantes.
Les espaces de noms sont déclarés avec le mot-clé namespace.
Un fichier contenant un espace de noms doit déclarer l'espace au début
du fichier, avant tout autre code, avec une seule exception : le mot
clé declare.
Exemple #1 Déclaration d'un espace de noms
<?php
namespace MonProjet;
const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */ }
Note:
Les noms complÚtement qualifiés (c.-à -d. les noms commençant avec un antislash)
ne sont pas autorisés dans les déclarations d'espaces de noms, car de telles
constructions sont interprétées comme des expressions d'espace de noms
relatif.
Le seul élément autorisé avant la déclaration d'espace de noms est la commande
declare, pour définir l'encodage du fichier source. De plus,
aucun code non-PHP ne peut précéder la déclaration d'espace de noms, y compris
des espaces :
Exemple #2 Erreur de déclaration d'un espace de noms
<html>
<?php
namespace MonProjet; // erreur fatale : le namespace doit ĂȘtre le premier Ă©lĂ©ment du script
De plus, contrairement Ă d'autres structures PHP, le mĂȘme espace de noms peut
ĂȘtre dĂ©fini dans plusieurs fichiers, ce qui permet de scinder le contenu d'un
espace de noms sur plusieurs fichiers.