Cet article vous présentera comment PHP déclare un espace de noms, trois façons d'accéder aux éléments d'espace et comment introduire un espace de noms.
1.1 Introduction
Dans un grand projet, vous pouvez rencontrer des classes, des fonctions et des constantes portant le même nom. Afin de distinguer ces éléments, nous pouvons les distinguer. éléments stockés respectivement dans différents espaces de noms. 1. Namespace est un package utilisé pour stocker des classes, des fonctions et des constantes dans le projet. 2. Déclarez l'espace de noms via le mot-clé namespace
1.2 Déclarez l'espace de noms
Exemple :
<?php namespace China; // 定义命名空间 function getInfo () { echo '我是中国人'; } getInfo(); namespace USA; // 定义命名空间 function getInfo () { echo '我是美国人'; } getInfo(); ?>
Effet :
Utilisez namespace
pour saisir une méthode d'appel d'espace de noms.
Exemple : 命名空间
可进入某个命名空间中调用方法。
例:
<?php namespace China; // 定义命名空间 function getInfo () { echo '我是中国人'; } getInfo(); namespace USA; // 定义命名空间 function getInfo () { echo '我是美国人'; } getInfo(); \China\ getInfo(); ?>
效果:
1.3 多级命名空间
命名空间的名字可以是多级的(子级命名空间) 例如:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi'; } getInfo(); // 非限定名称访问 namespace USA\Washington; // 定义命名空间 function getInfo () { echo 'USA\Washington'; } \USA\Washington\ getInfo(); // 完全限定名称访问 ?>
效果:
1.4 访问空间元素的三种方式
1、非限定名称访问 2、完全限定名称访问 3、限定名称访问 例:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi'; } namespace China\Beijing; // 定义命名空间 function getInfo () { echo 'China\Beijing'; } getInfo(); // 非限定名称访问 \China\Beijing\getInfo(); // 完全限定名称访问 Shunyi\getInfo(); // 限定名称访问 ?>
效果:
通过use
引入命名空间
完全限定名称访问元素
引入命名空间的拼接规则
公共空间+引入空间+(去除公共部分,公共部分只能留一级)空间元素
例:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi<br>'; } namespace China\Beijing; // 定义命名空间 function getInfo () { echo 'China\Beijing<br>'; } use China\Beijing\Shunyi; getInfo(); Shunyi\getInfo(); ?>
效果:
2.1 引入空间元素
引入类: use 引入函数:use function 引入常量: use const 例:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 class Student { } function getInfo() { echo 'jdk'; } const TYPE = 'CONST'; namespace USA; // 定义命名空间 // 引入类 use China\Beijing\Shunyi\Student; $stu = new Student(); var_dump($stu); echo '<br>'; // 引入函数 use function China\Beijing\Shunyi\getInfo; getInfo(); echo '<br>'; // 引入常量 use const China\Beijing\Shunyi\TYPE; echo TYPE; ?>
效果:
2.2 给类、函数取别名
如果引入的类和函数与当前空间的类和函数名称相同,需要给引入的类和函数取别名。 通过as取别名 例:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 class Student { } namespace USA; // 定义命名空间 class Student { } use China\Beijing\Shunyi\Student as ChinaStudent; $stu=new Student; var_dump($stu); echo '<br>'; $stu1=new ChinaStudent; var_dump($stu1); ?>
效果:
2.3 公共空间
如果一个页面没有namespace声明空间这个页面的元素在公共空间下
公共空间用
<?php function getInfo() { echo '李白<br>'; } \getInfo(); ?>
1.3 Espace de noms multi-niveaux Le nom de l'espace de noms peut être multi-niveaux (espace de noms enfant) Par exemple :
rrreeeEffet :
🎜1.4 Trois façons d'accéder aux éléments de l'espace🎜🎜🎜🎜1. Accès au nom non qualifié 2. Accès au nom complet 3. Accès restreint au nom Exemple : 🎜rrreee🎜Effet : 🎜🎜🎜🎜🎜2. Introduire l'espace de noms🎜🎜🎜Introduire l'espace de noms viautiliser
Élément d'accès au nom complet
Introduire les règles d'épissage de l'espace de noms 🎜🎜Espace public + introduire l'espace + (supprimer la partie publique, la partie publique ne peut rester qu'un niveau) élément d'espace 🎜🎜Exemple : 🎜rrreee🎜Effet : 🎜🎜🎜🎜🎜🎜2.1 Présentation éléments spatiaux 🎜🎜🎜🎜Cours d'introduction : utilisation Introduire des fonctions : utiliser la fonction Introduire des constantes : utilisez const Exemple : 🎜rrreee🎜Effet : 🎜🎜🎜🎜🎜🎜2.2 Noms d'alias pour les classes et les fonctions🎜🎜🎜🎜Si les classes et fonctions introduites ont les mêmes noms que celles de l'espace actuel, vous devez donner des alias aux classes et fonctions introduites. Utiliser l'alias comme Exemple : 🎜rrreee🎜Effet : 🎜🎜🎜🎜🎜🎜2.3 Espace public 🎜🎜🎜🎜Si une page ne possède pas d'espace de déclaration d'espace de noms, les éléments de cette page sont dans l'espace public Les espaces publics sont représentés par
Exemple : 🎜rrreee🎜Effet :🎜🎜🎜🎜🎜🎜🎜2.4 Notes sur l'espace de noms🎜🎜🎜🎜1. Les espaces de noms ne peuvent stocker que des classes, des fonctions et des constantes const.
2. Il ne peut y avoir de code devant le premier espace de noms, y compris les caractères vides et l'en-tête().
3. Les fichiers inclus n'affectent pas l'espace de noms actuel. 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜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!