Heim > Artikel > Backend-Entwicklung > Detaillierte Erklärung des Namespace in PHP
Dieser Artikel stellt Ihnen eine detaillierte Erklärung des Namespace in PHP vor. Er hat einen gewissen Referenzwert. Ich hoffe, er wird Ihnen hilfreich sein.
Der Namespace von PHP ist erst nach PHP5.3 verfügbar. Dieses Konzept gibt es in C# schon seit langem. Der Namespace in PHP ist eigentlich das gleiche Konzept wie in C#.
Warum müssen wir Namespace in PHP verwenden?
Angenommen, wenn kein Namespace verwendet wird, muss der Name jeder Klasse in einem Projekt festgelegt werden. Denn wenn PHP neu ist, gibt es unabhängig davon, ob es Autoload aufruft oder eine geladene Klasse aufruft, eine Datei, die dem Klassennamen entspricht. Wenn also kein Namespace vorhanden ist, werden wir uns verschiedene Namensregeln ausdenken, um verschiedene Klassen zu unterscheiden, z. B. project1_school1_class1_Student oder project2_school_class_Student.
Nach der Einführung eines Namespace kann dies effektiv vermieden werden. Ein Namespace entspricht einem Dateipfad. Bei der Suche nach dieser Klasse wird der entsprechende Dateipfad nach der Klassendefinitionsdatei durchsucht.
Definition und Verwendung des Namensraums
Definition:
<code class="language-php"><?php<br/><br/>namespace Myproject;</code>
oder
<code class="language-php"><?php<br/><br/>namespace Myproject {<br/><br/>}</code>
Verwendung:
<code class="language-php"><?php<br/><br/>use Myproject/School;</code>rrree
Benennung Leerzeichen werden zur Laufzeit aufgelöst. use entspricht einer Anweisung und wird nicht analysiert oder geladen. Zum Beispiel das folgende Beispiel:
test.php
<code class="language-php"><?php<br/><br/>use Myproject/School as School1; // 别名</code>
namespace1.php
<code class="language-php"><?php<br/>use my\name;<br/>require_once("/home/yejianfeng/handcode/test/namespace1.php");<br/>$a = new my\name\A();<br/>$a->Print1();</code>
Obwohl require_once verwendet wird, kann es dennoch normal ausgeführt werden, da das Programm dies nur kann normal unter new mynameA( ) ausführen, bevor der Namespace myname
globale Klasse und Namespace-Klasse geladen wird
Wenn Sie eine neue globale Klasse erstellen möchten, verwenden Sie new A()
Wenn Sie eine neue Namespace-Klasse erstellen möchten, verwenden Sie new mynamespaceA()
Die Reihenfolge der Namespaces
Da es einen Namespace gibt, ist der Am fehleranfälligsten ist die Verwendung von Klassen. Wie sieht der Suchpfad dieser Klasse aus?
Wenn Sie dieses Beispiel im Handbuch verstehen, können Sie auch die Suchreihenfolge herausfinden.
<code class="language-php"><?php<br/>namespace my\name;<br/>class A {<br/> public function Print1(){<br/> echo 11;<br/> }<br/>}</code>
Empfohlene verwandte Artikel:
Benennungsregeln für PHP-Variablen und Verwendung von PHP-Variablen (mit Code)
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Namespace in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!