Heim > Artikel > Backend-Entwicklung > PHP-Namespace-Namespace-Definition und Import-Anwendungsfallanalyse
Dieses Mal werde ich Ihnen eine Fallanalyse der PHP-Namespace--Namespace-Definition und des Nutzungsimports, der Vorsichtsmaßnahmen für die PHP-Namespace-Definition und des Nutzungsimports und Folgendes vorstellen ist ein praktischer Fall, werfen wir einen Blick darauf.
In PHP sind Funktionen oder Klassen mit demselben Namen nicht erlaubt. Um wiederholte Konflikte in Klassennamen oder Funktionsnamen zu verhindern, die von Programmierern im Projekt definiert wurden , wurde das Konzept des Namespace in PHP5.3 eingeführt.
1. Namespace, das heißt, die Aufteilung des Codes in verschiedene Räume ist unabhängig voneinander und steht nicht in Konflikt miteinander. In einer PHP-Datei können mehrere Namespaces vorhanden sein, und vor dem ersten Namespace darf kein Code stehen. Der Code nach der Inhaltsraumdeklaration gehört zu diesem Namensraum , zum Beispiel:
<?php echo 111; //由于namespace前有代码而报错 namespace Teacher; class Person{ function construct(){ echo 'Please study!'; } }
2. Beim Aufrufen von Klassen oder Methoden in unterschiedlichen Räumen muss der Namensraum angegeben werden. Zum Beispiel:
<?php namespace Teacher; class Person{ function construct(){ echo 'Please study!<br/>'; } } function Person(){ return 'You must stay here!'; }; namespace Student; class Person{ function construct(){ echo 'I want to play!<br/>'; } } new Person(); //本空间(Student空间) new \Teacher\Person(); //Teacher空间 new \Student\Person(); //Student空间 echo \Teacher\Person(); //Teacher空间下Person函数
Ausgabe:
I want to play! Please study! I want to play! You must stay here!
3. Andere in den Namensraum eingeführte Dateien gehören nicht zu diesem Namensraum, sondern gehören zum öffentlichen Raum oder sind in definiert der Namensraum der Datei selbst. Beispiel:
Definieren Sie zunächst eine 1.php- und eine 2.php-Datei:
<?php //1.php class Person{ function construct(){ echo 'I am one!<br/>'; } }
<?php namespace Newer; require_once './1.php'; new Person(); //报错,找不到Person; new \Person(); //输出 I am tow!;
<?php //2.php namespace Two class Person{ function construct(){ echo 'I am tow!<br/>'; } }
<?php namespace New; require_once './2.php'; new Person(); //报错,(当前空间)找不到Person; new \Person(); //报错,(公共空间)找不到Person; new \Two\Person(); //输出 I am tow!;
4. Sehen wir uns an, wie Sie verwenden: (nach der Verwendung Zitatkann abgekürzt werden)
namespace School\Parents; class Man{ function construct(){ echo 'Listen to teachers!<br/>'; } } namespace School\Teacher; class Person{ function construct(){ echo 'Please study!<br/>'; } } namespace School\Student; class Person{ function construct(){ echo 'I want to play!<br/>'; } } new Person(); //输出I want to play! new \School\Teacher\Person(); //输出Please study! new Teacher\Person(); //报错 ---------- use School\Teacher; new Teacher\Person(); //输出Please study! ---------- use School\Teacher as Tc; new Tc\Person(); //输出Please study! ---------- use \School\Teacher\Person; new Person(); //报错 ---------- use \School\Parent\Man; new Man(); //报错
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Das obige ist der detaillierte Inhalt vonPHP-Namespace-Namespace-Definition und Import-Anwendungsfallanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!