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();
}
?>