Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung des Namespace in PHP

Detaillierte Erklärung des Namespace in PHP

不言
不言Original
2018-08-03 14:45:361337Durchsuche

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)

So verwenden Sie PHP 32 Verschlüsselung und Entschlüsselung der ID basierend auf dem Hexadezimalsystem (Code beigefügt)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn