Heim  >  Artikel  >  Backend-Entwicklung  >  Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

青灯夜游
青灯夜游nach vorne
2021-07-27 18:42:043381Durchsuche

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.

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

1. Namespace

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 &#39;我是中国人&#39;;
  }
  getInfo();

  namespace USA; // 定义命名空间
  function getInfo () {
    echo &#39;我是美国人&#39;;
  }
  getInfo();
?>

Wirkung:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

Verwenden Sie namespace, um eine Namespace-Aufrufmethode einzugeben. Beispiel: 命名空间可进入某个命名空间中调用方法。 例:

<?php
  namespace China; // 定义命名空间
  function getInfo () {
    echo &#39;我是中国人&#39;;
  }
  getInfo();

  namespace USA; // 定义命名空间
  function getInfo () {
    echo &#39;我是美国人&#39;;
  }
  getInfo();
  \China\ getInfo();
?>

效果:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

1.3 多级命名空间

命名空间的名字可以是多级的(子级命名空间) 例如:

<?php
  namespace China\Beijing\Shunyi; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing\Shunyi&#39;;
  }
  getInfo(); // 非限定名称访问

  namespace USA\Washington; // 定义命名空间
  function getInfo () {
    echo &#39;USA\Washington&#39;;
  }
  \USA\Washington\ getInfo(); // 完全限定名称访问
?>

效果:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

1.4 访问空间元素的三种方式

1、非限定名称访问 2、完全限定名称访问 3、限定名称访问 例:

<?php
  namespace China\Beijing\Shunyi; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing\Shunyi&#39;;
  }

  namespace China\Beijing; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing&#39;;
  }

  getInfo();  // 非限定名称访问 
  \China\Beijing\getInfo();  // 完全限定名称访问
  Shunyi\getInfo();  // 限定名称访问

?>

效果:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

二、引入命名空间

通过use引入命名空间 完全限定名称访问元素 引入命名空间的拼接规则

公共空间+引入空间+(去除公共部分,公共部分只能留一级)空间元素

例:

<?php
  namespace China\Beijing\Shunyi; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing\Shunyi<br>&#39;;
  }

  namespace China\Beijing; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing<br>&#39;;
  }

  use China\Beijing\Shunyi;
  getInfo(); 
  Shunyi\getInfo();

?>

效果:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

2.1 引入空间元素

引入类: use 引入函数:use function 引入常量: use const 例:

<?php
  namespace China\Beijing\Shunyi; // 定义命名空间
  class Student {
  }
  function getInfo() {
    echo &#39;jdk&#39;;
  }
  const TYPE = &#39;CONST&#39;;
  namespace USA; // 定义命名空间
  // 引入类
  use China\Beijing\Shunyi\Student;
  $stu = new Student();
  var_dump($stu);
  echo &#39;<br>&#39;;
  // 引入函数
  use function China\Beijing\Shunyi\getInfo;
  getInfo();
  echo &#39;<br>&#39;;

  // 引入常量
  use const China\Beijing\Shunyi\TYPE;
  echo TYPE;
?>

效果:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

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 &#39;<br>&#39;;
  $stu1=new ChinaStudent;
  var_dump($stu1);
?>

效果:

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

2.3 公共空间

如果一个页面没有namespace声明空间这个页面的元素在公共空间下 公共空间用

<?php
  function getInfo() {
    echo &#39;李白<br>&#39;;
  }
  \getInfo();

?>

Effekt:

2. png

Eine ausführliche Analyse der Deklaration und Einführung von Namespaces in PHP

1.3 Mehrstufiger Namespace Der Name des Namespace kann mehrstufig sein (untergeordneter Namespace) Zum Beispiel:

rrreee

Effekt:

3 . png

🎜1.4 Drei Möglichkeiten, auf Leerzeichenelemente zuzugreifen🎜🎜🎜🎜1. Unqualifizierter Namenszugriff 2. Vollqualifizierter Namenszugriff 3. Eingeschränkter Namenszugriff Beispiel: 🎜rrreee🎜Effekt: 🎜🎜4. png🎜🎜🎜2. Namespace einführen🎜🎜🎜Namespace durch use 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: 🎜🎜6. png🎜🎜🎜🎜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: 🎜🎜7. png🎜🎜🎜🎜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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen