D�finition de plusieurs espaces de noms dans le m�me fichier

Plusieurs espaces de noms peuvent aussi �tre d�clar�s dans le m�me fichier. Il y a deux syntaxes autoris�es.

Exemple #1 D�claration de plusieurs espaces de noms, syntaxe � combinaison simple

<?php
namespace MonProjet;

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }

namespace 
AutreProjet;

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
?>

Cette syntaxe n'est pas recommand�e pour combiner des espaces de noms dans un seul fichier. Au lieu de cela, il est recommand� d'utiliser la syntaxe � accolades.

Exemple #2 D�claration de plusieurs espaces de noms, syntaxe � accolades

<?php
namespace MonProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}

namespace 
AutreProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}
?>

Il est fortement recommand�, en tant que pratique de codage, de ne pas m�langer plusieurs espaces de noms dans le m�me fichier. L'utilisation recommand�e est de combiner plusieurs scripts PHP dans le m�me fichier.

Pour combiner plusieurs codes sans espaces de noms dans du code avec espace de noms, seul la syntaxe � accolades est support�e. Le code global doit �tre encadr� par un espace de noms sans nom, tel que celui-ci :

Exemple #3 D�claration de plusieurs espaces de noms avec un espace sans nom

<?php
namespace MonProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}

namespace { 
// code global
session_start();
$a MonProjet\connecte();
echo 
MonProjet\Connexion::start();
}
?>

Aucun code PHP ne peut exister hors des accolades de l'espace de noms, sauf pour ouvrir une nouvelle instruction declare.

Exemple #4 D�claration de plusieurs espaces de noms avec un espace sans noms (2)

<?php
declare(encoding='UTF-8');
namespace 
MonProjet {

const 
CONNEXION_OK 1;
class 
Connexion /* ... */ }
function 
connecte() { /* ... */  }
}

namespace { 
// code global
session_start();
$a MonProjet\connecte();
echo 
MonProjet\Connexion::start();
}
?>