Espace de noms PHP : explication détaillée des instances de sous-espace et d'espace public

伊谢尔伦
Libérer: 2023-03-07 19:26:02
original
2756 Les gens l'ont consulté

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空间的类
?>
Copier après la connexion

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{
   
 }
?>
Copier après la connexion

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 &#39;common.php&#39;;  //引入当前目录下的文件
 $demo = new Demo;    //出现致命错误:找不到 cn\my\Demo类
 $demo = new \Demo(); //正确的方式  加上 \
 var_dump();   // 错误,系统函数在公共空间
 \var_dump();  // 正确,使用了 \
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal