Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Namespace-Prinzip

PHP-Namespace-Prinzip

王林
王林Original
2019-09-06 16:35:093419Durchsuche

PHP-Namespace-Prinzip

1. Was ist ein Namespace und wie definiert man einen Namespace?
Im Allgemeinen gibt es keine Unterschiede zwischen einer PHP-Programmquellcodedatei und derselben Anfrage . Es sind mehr als zwei Klassennamen, Konstantennamen oder Funktionsnamen mit demselben Namen zulässig. In diesem Fall meldet das Programm beim Ausführen einen Fehler. In vielen praktischen Situationen können wir es jedoch nicht vermeiden, mehr als zwei Klassennamen, Konstantennamen oder Funktionsnamen mit demselben Namen in derselben Datei zu haben. In diesem Fall muss ein Namespace eingeführt werden.

Beispiel:

<?php
function getUser () 
{
  return $username1;
}
  function getUser () 
  {
  return $username2;
  }

Ein Programm wie dieses meldet bei der Ausführung einen Fehler. Also führen wir den Namespace wie folgt ein:

<?php
namespace get1function getUser () 
{
  return $username1;
}
namespace get2
function getUser () 
{
  return $username2;
}

Wie versteht man die Bedeutung des Namespace? Am Beispiel des obigen Codes stellen wir uns diese PHP-Datei als einen Ordner und die beiden darin enthaltenen Funktionen als zwei Dateien vor, aber zwei Dateien mit demselben Namen sind im selben Ordner nicht zulässig, daher müssen wir sie in zwei Ordner aufteilen mit unterschiedlichen Namen. So funktionieren Namespaces.

Besonderer Hinweis:
Der Namespace ist nur für Klassennamen, Funktionsnamen und Konstanten (definiert durch const) gültig.
Dem vorderen Namensraum einer Datei dürfen keine gültigen Zeichen vorangestellt werden

2. Wie verwende ich den Namensraum?
Wie verwenden wir beispielsweise getUser() unter get2, wie oben definiert?
1) Wenn beim Zugriff auf eine Funktion (oder Konstante, Klassenname) der Namespace nicht angegeben ist, wird das Proximity-Prinzip verwendet (Zugriff unter dem aktuellen Namespace).
2) Wie greife ich also auf den Inhalt unter dem angegebenen Namespace zu? Wie folgt:

\get1\getUser(); // 访问get1下的getUser()方法

3. Mehrstufiger Namespace und drei Zugriffsmethoden
1) Mehrstufiger Namespace:
Stellen Sie sich vor, eine PHP-Projektdatei wäre ein Dateiordner, Unter einem Ordner befinden sich Unterordner der ersten Ebene und unter den Unterordnern der ersten Ebene Unterordner (sekundäre Unterordner). Dasselbe gilt für Namespaces. Es gibt möglicherweise Namespaces Mehrstufige Namensräume. Zum Beispiel in thinkPHP:

namespace app\Index\Controller;

Dies ist ein mehrstufiger Namensraum. Die Zugriffsmethode ist dieselbe wie im allgemeinen Namensraum.

2) Drei Zugriffsmethoden für Namensräume (ähnlich relativen Pfaden und absoluten Pfaden)
Unqualifizierte Namenszugriffsmethode
C

<?php
namespace app\get1
function getUser () 
{
  return $username1;
  }
  namespace get2
  function getUser () {
  return $username2;
  }
  getUser(); // 非限定名称访问方式
  \app\get1\getUser(); //完全限定名称访问方式,从根路径开始,类似绝对路径
  app\get1\getUser(); //限定名称访问方式,不是从根路径开始,类似相对路径

4. Namespace-Einführungsmechanismus 1) Space-Einführung: Verwendung von Schlüsselwörtern. Hinweis: Nach dem Verschieben in den Space müssen Sie beim Zugriff auf Funktionen (bzw Klassen, Konstanten) im importierten Bereich können Sie keine unqualifizierten Namen verwenden, um auf Funktionen (oder Klassen, Konstanten) im aktuellen Namespace zuzugreifen.
2) Einführung räumlicher Elemente: Verwendung von Schlüsselwörtern. HINWEIS: Es können nur Klassen eingeführt und dann mit unqualifizierten Namen aufgerufen werden.

Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPHP-Namespace-Prinzip. 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
Vorheriger Artikel:Was ist ein Array in PHP?Nächster Artikel:Was ist ein Array in PHP?