Maison >développement back-end >tutoriel php >Espace de noms php (réponse détaillée combinée avec du code)

Espace de noms php (réponse détaillée combinée avec du code)

亚连
亚连original
2018-05-17 14:37:101575parcourir

dans php espace de noms , vous devez connaître la terminologie des trois noms d'espaces : noms non qualifiés, noms qualifiés, noms complets, et comment PHP les analyse. Les documents officiels sont très bons, donc je les ai simplement utilisés directement. Les comprendre est très utile pour apprendre le contenu suivant. Nous avons entendu parler plus tôt du sous-espace et de l'espace public de l'espace de noms. Il est logique que la syntaxe d'appel de l'espace de noms soit comme un chemin de fichier. Elle nous permet de personnaliser le sous-espace pour décrire la relation entre chaque espace.

Les termes pour les trois noms dans l'espace de noms sont les suivants :

1 Noms non qualifiés ou noms de classe qui n'incluent pas de préfixe, tels que $comment. = nouveau commentaire();. Si l'espace de noms actuel est BlogArticle, Comment sera analysé comme BlogArticleComment. Si le code utilisant Comment ne contient du code dans aucun espace de noms (dans l'espace global), le Comment sera analysé comme un Commentaire.

2. Nom qualifié, ou un nom contenant un préfixe, tel que $comment = new ArticleComment();. Si l'espace de noms actuel est Blog, Comment sera analysé comme BlogArticleComment. Si le code utilisant Comment ne contient du code dans aucun espace de noms (dans l'espace global), le Comment sera analysé comme un Commentaire.

3. Nom complet, ou un nom qui inclut le préfixe global

opérateur , tel que $comment = new ArticleComment();. Dans ce cas, Comment est toujours résolu par le nom littéral ArticleComment dans le code.

En fait, ces trois noms peuvent être comparés aux noms de fichiers (tels que comment.php), aux noms de chemins relatifs (tels que ./article/comment.php) et aux noms de chemins absolus (tels que /blog /article/comment. php) qui pourrait être plus facile à comprendre.

Créez un espace Blog ici, en utilisant un nom non qualifié pour représenter l'espace Blog actuel. Cet appel sera analysé après instanciation. Utilisez un nom qualifié pour indiquer qu'il est relatif à l'espace Blog. Après l'instanciation, cet appel sera analysé dans BlogArticleComment(). Notez qu'il n'y a pas de barre oblique inverse devant la classe. Utilisez un nom complet, indiquant qu'il est absolu pour l'espace Blog. Cet appel sera analysé après l'instanciation. Notez la différence entre une barre oblique inverse devant la classe et aucune barre oblique inverse.

L'exemple de code est le suivant :

[html] view plain copy
<?php  
//创建空间Blog  
namespace Blog;  
class Comment { }  
//非限定名称,表示当前Blog空间  
//这个调用将被解析成 Blog\Comment();  
$blog_comment = new Comment();  
//限定名称,表示相对于Blog空间  
//这个调用将被解析成 Blog\Article\Comment();  
$article_comment = new Article\Comment(); //类前面没有反斜杆\  
//完全限定名称,表示绝对于Blog空间  
//这个调用将被解析成 Blog\Comment();  
$article_comment = new \Blog\Comment(); //类前面有反斜杆\  
//完全限定名称,表示绝对于Blog空间  
//这个调用将被解析成 Blog\Article\Comment();  
$article_comment = new \Blog\Article\Comment(); //类前面有反斜杆\  
//创建Blog的子空间Article  
namespace Blog\Article;  
class Comment { }  
?>
Ce qui précède est l'espace de noms php que j'ai compilé pour tout le monde. J'espère qu'il sera utile à tout le monde à l'avenir.

Articles connexes :

Introduction détaillée à la différence entre l'espace de noms PHP et le chargement automatique

Introduction détaillée à PHP en combinaison avec le code Scope

Méthode d'utilisation détaillée dans la fonction de fermeture PHP() use()

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn