Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der PHP-Namespace-Namespace-Definition
In PHP sind Funktionen oder Klassen mit demselben Namen nicht zulässig. 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, d. h. Aufteilung des Codes in verschiedene Räume. Die Klassennamen in verschiedenen Räumen sind unabhängig voneinander und stehen nicht im Widerspruch zueinander. 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 'Please study!'; } }
2. Der Aufruf von Klassen oder Methoden in verschiedenen Räumen muss erfolgen klar definierter Namensraum. Zum Beispiel:
<?php namespace Teacher; class Person{ function __construct(){ echo '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. Das Einführen anderer Dateien in den Namespace gehört nicht zu diesem Namespace, sondern zum öffentlichen Raum oder dem in der Datei selbst definierten Namespace. 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. Schauen wir uns die Verwendung an: (Verwendung kann für die Zukunft abgekürzt werden Referenzen) )
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(); //报错
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Namespace-Namespace-Definition. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!