Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Namespace-Namespace-Definition und Import-Anwendungsfallanalyse

PHP-Namespace-Namespace-Definition und Import-Anwendungsfallanalyse

php中世界最好的语言
php中世界最好的语言Original
2018-05-18 10:24:241334Durchsuche

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 &#39;Please study!&#39;;
  }
}

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 &#39;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:

Detaillierte Erläuterung der Schritte zum Ausblenden der Eintragsdatei in PHP

Detaillierte Erläuterung der Schritte zur Datenoptimierung Statistiken innerhalb eines festen Zeitraums mit PHP+MySQL

Detaillierte Erläuterung der Schritte zur Angabe der Anzahl der Iterationen mithilfe statischer Funktionsvariablen in PHP

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!

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