Maison > Article > développement back-end > Explication détaillée de la définition de l'espace de noms PHP
En PHP, les fonctions ou classes portant le même nom ne sont pas autorisées. Afin de éviter les conflits répétés dans les noms de classes ou de fonctions définis par les programmeurs du projet , le concept d'espace de noms a été introduit dans PHP5.3.
1. Espace de noms, c'est-à-dire diviser le code en différents espaces. Les noms de classe dans différents espaces sont indépendants les uns des autres et n'entrent pas en conflit les uns avec les autres. Plusieurs espaces de noms peuvent exister dans un fichier php, et il ne peut y avoir de code avant le premier espace de noms. Le code après la déclaration de l'espace de contenu appartient à cet espace de noms , par exemple :
<?php echo 111; //由于namespace前有代码而报错 namespace Teacher; class Person{ function __construct(){ echo 'Please study!'; } }
2. L'appel de classes ou de méthodes dans différents espaces doit être espace de noms clairement indiqué. Par exemple :
<?php namespace Teacher; class Person{ function __construct(){ echo 'Please study!<br/>'; } } function Person(){ return 'You must stay here!'; }; namespace Student; class Person{ function __construct(){ echo 'I want to play!<br/>'; } } new Person(); //本空间(Student空间) new \Teacher\Person(); //Teacher空间 new \Student\Person(); //Student空间 echo \Teacher\Person(); //Teacher空间下Person函数
Sortie :
I want to play! Please study! I want to play! You must stay here!
3. L'introduction d'autres fichiers dans l'espace de noms n'appartiendra pas à cet espace de noms, mais à l'espace public ou à l'espace de noms défini dans le fichier lui-même. Exemple :
Définissez d'abord un fichier 1.php et 2.php :
<?php //1.php class Person{ function __construct(){ echo 'I am one!<br/>'; } }
<?php namespace Newer; require_once './1.php'; new Person(); //报错,找不到Person; new \Person(); //输出 I am tow!;
<?php //2.php namespace Two class Person{ function __construct(){ echo 'I am tow!<br/>'; } }
<?php namespace New; require_once './2.php'; new Person(); //报错,(当前空间)找不到Person; new \Person(); //报错,(公共空间)找不到Person; new \Two\Person(); //输出 I am tow!;
4. Voyons comment utiliser utiliser : (l'utilisation peut être abrégée pour l'avenir. références) )
namespace School\Parents; class Man{ function __construct(){ echo 'Listen to teachers!<br/>'; } } namespace School\Teacher; class Person{ function __construct(){ echo 'Please study!<br/>'; } } namespace School\Student; class Person{ function __construct(){ echo 'I want to play!<br/>'; } } new Person(); //输出I want to play! new \School\Teacher\Person(); //输出Please study! new Teacher\Person(); //报错 ---------- use School\Teacher; new Teacher\Person(); //输出Please study! ---------- use School\Teacher as Tc; new Tc\Person(); //输出Please study! ---------- use \School\Teacher\Person; new Person(); //报错 ---------- use \School\Parent\Man; new Man(); //报错
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!