La structure d'un espace de noms est très similaire à celle d'un système de fichiers. Les dossiers peuvent avoir des sous-dossiers, et les espaces de noms peuvent également définir des sous-espaces pour décrire les relations de propriété entre les espaces. Le chapitre précédent a présenté Qu'est-ce qu'un espace de noms ? En plus de l'application de base de l'espace de noms PHP , nous commençons ici à comprendre le sous-espace et l'espace public de l'espace de noms.
Utilisez l'exemple suivant pour illustrer ce qu'est le sous-espace
Par exemple, les deux modules panier et commande sont tous deux dans le même projet de boutique, exprimer des relations à travers des sous-espaces d'espace de noms.
Le code est le suivant :
<?php namespace shop\cart; //命名空间表示处于 shop 项目下的 cart class Test { } namespace shop\order; //命名空间表示处于 shop 项目下的 order class Test { //申明与上面空间相同的类 } $test =new Test(); //调用当前的类 $cart = new \shop\cart\Test(); //调用shop\cart空间的类 ?>
Le sous-espace de l'espace de noms peut également définir de nombreux niveaux, comme cnmywwwshop. Les revendications de sous-espace à plusieurs niveaux sont souvent faites en utilisant le nom de domaine de l'entreprise inversé, suivi du nom du projet. L'avantage est que le nom de domaine n'est pas répété sur Internet, qu'il n'y aura pas d'espace de noms portant le même nom sur Internet et que vous pourrez également identifier le projet spécifique de quelle entreprise il s'agit. Cela a un fort effet publicitaire.
Espace public dans l'espace de noms
L'espace public dans l'espace de noms est facile à comprendre. En fait, il n'y a pas de méthodes, de bibliothèques de classes. et les bibliothèques de classes qui définissent l'espace de noms appartiennent par défaut à l'espace public, ce qui explique que la plupart du code écrit dans les versions précédentes peut s'exécuter dans PHP5.3 et les versions ultérieures. De plus, une fois que le segment de code dans l'espace public est introduit dans un certain espace de noms, le segment de code dans l'espace public n'appartient à aucun espace de noms. Par exemple, déclarez un fichier de script common.php et déclarez les fonctions et les classes dans le fichier.
Le code est le suivant :
<?php function fun(){ } class Demo{ } ?>
Créez un autre fichier PHP et introduisez ce fichier script common.php dans un espace de noms, mais il peut être scripté Les classes et les fonctions n'appartiendront pas à cet espace de noms. Si aucun autre espace de noms n'est défini dans ce script, ses éléments sont toujours dans l'espace public.
Le code est le suivant :
<?php namespace cn\my; include 'common.php'; //引入当前目录下的文件 $demo = new Demo; //出现致命错误:找不到 cn\my\Demo类 $demo = new \Demo(); //正确的方式 加上 \ var_dump(); // 错误,系统函数在公共空间 \var_dump(); // 正确,使用了 \ ?>
Remarque : La façon d'appeler l'espace public est d'ajouter directement devant le nom de l'élément. , sinon l'analyseur PHP pensera que l'utilisateur appelle l'élément sous l'espace actuel. En plus des éléments personnalisés, il existe également des éléments fournis avec PHP, qui appartiennent tous à l'espace public. En fait, les fonctions et constantes dans les espaces publics peuvent être appelées normalement sans ajouter . Cependant, afin de distinguer correctement la zone où se trouve l'élément, il est recommandé d'ajouter lors de l'appel de la fonction.
Les sous-espaces et espaces publics de l'espace de noms sont présentés ici. La section suivante vous présente les trois noms et termes de l'espace de noms.
【Tutoriels recommandés】
1. "php.cn Dugu Jiujian (4) - Tutoriel vidéo PHP "
2 . tutoriel : Espace de noms : Bien que nous ayons le même nom et le même sexe, nous appartenons à des temps et des espaces différents
Un 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!