In diesem Artikel erfahren Sie, wie PHP einen Namespace deklariert, drei Möglichkeiten für den Zugriff auf Space-Elemente und wie Sie einen Namespace einführen.
1.1 Einführung
In einem großen Projekt können Sie auf Klassen, Funktionen und Konstanten mit demselben Namen stoßen. Um diese Elemente zu unterscheiden, können wir diese unterscheiden Elemente werden jeweils in unterschiedlichen Namespaces gespeichert. 1. Namespace ist ein Paket, das zum Speichern von Klassen, Funktionen und Konstanten im Projekt verwendet wird 2. Deklarieren Sie den Namespace über das Namespace-Schlüsselwort
1.2 Deklarieren Sie den Namespace
Beispiel:
<?php namespace China; // 定义命名空间 function getInfo () { echo '我是中国人'; } getInfo(); namespace USA; // 定义命名空间 function getInfo () { echo '我是美国人'; } getInfo(); ?>
Wirkung:
Verwenden Sie namespace
, um eine Namespace-Aufrufmethode einzugeben.
Beispiel: 命名空间
可进入某个命名空间中调用方法。
例:
<?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 Mehrstufiger Namespace Der Name des Namespace kann mehrstufig sein (untergeordneter Namespace) Zum Beispiel:
rrreeeEffekt:
🎜1.4 Drei Möglichkeiten, auf Leerzeichenelemente zuzugreifen🎜🎜🎜🎜1. Unqualifizierter Namenszugriff 2. Vollqualifizierter Namenszugriff 3. Eingeschränkter Namenszugriff Beispiel: 🎜rrreee🎜Effekt: 🎜🎜🎜🎜🎜2. Namespace einführen🎜🎜🎜Namespace durchuse
einführen
Vollqualifiziertes Namenszugriffselement
Führen Sie die Spleißregeln des Namespace ein 🎜🎜Öffentlicher Raum + Einführung von Leerzeichen + (entfernen Sie den öffentlichen Teil, der öffentliche Teil kann nur eine Ebene bleiben) Leerzeichenelement 🎜🎜Beispiel: 🎜rrreee🎜Effekt: 🎜🎜🎜🎜🎜🎜2.1 Wir stellen vor Raumelemente 🎜🎜🎜🎜Einführungsklasse: Verwendung Funktionen einführen: Funktion verwenden Konstanten einführen: const verwenden Beispiel: 🎜rrreee🎜Effekt: 🎜🎜🎜🎜🎜🎜2.2 Aliasnamen für Klassen und Funktionen🎜🎜🎜🎜Wenn die eingeführten Klassen und Funktionen dieselben Namen wie die im aktuellen Bereich haben, müssen Sie den eingeführten Klassen und Funktionen Aliase geben. Alias verwenden als Beispiel: 🎜rrreee🎜Effekt: 🎜🎜🎜🎜🎜🎜2.3 Öffentlicher Raum 🎜🎜🎜🎜Wenn eine Seite keinen Namespace-Deklarationsraum hat, befinden sich die Elemente dieser Seite im öffentlichen Raum Öffentliche Räume werden durch
dargestellt
Beispiel: 🎜rrreee🎜Effekt:🎜🎜🎜🎜🎜🎜🎜2.4 Hinweise zum Namespace🎜🎜🎜🎜1. Namespaces können nur Klassen, Funktionen und Konstanten speichern.
2. Vor dem ersten Namespace dürfen kein Code, Leerzeichen oder Header() stehen.
3. Das Einschließen von Dateien hat keine Auswirkungen auf den aktuellen Namespace. 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜Das obige ist der detaillierte Inhalt vonEine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!