Maison > Article > développement back-end > Explication détaillée du rôle de l'espace de noms php
L'une des fonctions les plus claires de l'espace de noms PHP est de résoudre le problème des noms en double. Deux fonctions ou classes ne sont pas autorisées à avoir le même nom en PHP, sinon une erreur fatale se produira. Le chapitre précédent a présenté ce qu'est l'espace de noms PHP . Le site officiel de PHP l'a clairement défini et expliqué visuellement. Voici un paragraphe copié directement du site officiel de PHP : Au sens large, l'espace de noms est une méthode d'encapsulation des choses. Ce concept abstrait se retrouve à de nombreux endroits. Par exemple, les répertoires sont utilisés dans les systèmes d'exploitation pour regrouper les fichiers associés et agissent comme des espaces de noms pour les fichiers du répertoire. Par exemple, le fichier foo.txt peut exister dans les répertoires /home/greg et /home/other en même temps, mais deux fichiers foo.txt ne peuvent pas exister dans le même répertoire. De plus, lors de l'accès au fichier foo.txt en dehors du répertoire /home/greg, nous devons mettre le nom du répertoire et le séparateur de répertoire avant le nom du fichier pour obtenir /home/greg/foo.txt. L'application de ce principe au domaine de la programmation est le concept d'espace de noms.
L'introduction du mot-clé d'espace de noms dans l'espace de noms PHP vise à résoudre divers « problèmes » survenus dans le processus de programmation orientée objet PHP. Les problèmes spécifiques sont les suivants :
Le code est le suivant :
<?php //创建一个名为'Article'的命名空间 namespace Article; //此Comment属于Article空间的元素 class Comment { } //创建一个名为'MessageBoard'的命名空间 namespace MessageBoard; //此Comment属于MessageBoard空间的元素 class Comment { } ?>Vous ne pouvez pas appeler directement d'autres éléments entre différents espaces, vous devez utiliser la syntaxe de l'espace de noms. L'exemple de code est le suivant :
<?php namespace Article; class Comment { } namespace MessageBoard; class Comment { } //调用当前空间(MessageBoard)的Comment类 $comment = new Comment(); //调用Article空间的Comment类 $article_comment = new \Article\Comment(); ?>Comme vous pouvez le voir, lors de l'appel de la classe Comment dans l'espace article dans l'espace MessageBoard, une syntaxe comme un chemin de fichier est utilisée :
Nom de l'élément de nom d'espace
À l'exception des classes, l'utilisation des fonctions et des constantes est la même. Ci-dessous, j'ai créé de nouveaux éléments pour les deux espaces et les ai affichés dans la valeur de l'espace MessageBoard. Le code est le suivant :<?php namespace Article; const PATH = '/article'; function getCommentTotal() { return 100; } class Comment { } namespace MessageBoard; const PATH = '/message_board'; function getCommentTotal() { return 300; } class Comment { } //调用当前空间的常量、函数和类 echo PATH; //message_board echo getCommentTotal(); //300 $comment = new Comment(); //调用Article空间的常量、函数和类 echo \Article\PATH; //article echo \Article\getCommentTotal(); //100 $article_comment = new \Article\Comment(); ?>Les résultats suivants sont obtenus :
/message_board300/article100
php.cn Dugu Jiujian (4) - Tutoriel vidéo PHP"
2. >Espace de noms : Bien que nous ayons le même nom et le même sexe, nous appartenons à des temps et des espaces différentsUn ensemble complet de tutoriels sur la programmation PHP de l'entrée au master.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!