downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Utilisation des espaces de noms : introduction> <Déclaration d'un sous espace de noms
Last updated: Fri, 14 Aug 2009

view this page in

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



add a note add a note User Contributed Notes
Définition de plusieurs espaces de noms dans le même fichier
There are no user contributed notes for this page.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites