Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Namespace (ausführliche Antwort kombiniert mit Code)

PHP-Namespace (ausführliche Antwort kombiniert mit Code)

亚连
亚连Original
2018-05-17 14:37:101529Durchsuche

im php Namespace , Sie müssen die Terminologie der drei Namen von Leerzeichen kennen: unqualifizierte Namen, qualifizierte Namen, vollständig qualifizierte Namen und wie PHP sie analysiert. Die offiziellen Dokumente sind sehr gut, daher habe ich sie direkt verwendet, um sie zu verstehen, was für das Erlernen der folgenden Inhalte sehr hilfreich ist. Wir haben zuvor etwas über den Unterraum und den öffentlichen Raum des Namensraums gelernt. Es macht Sinn, dass die aufrufende Syntax des Namensraums einem Dateipfad ähnelt. Dadurch können wir den Unterraum anpassen, um die Beziehung zwischen den einzelnen Räumen zu beschreiben.

Die Begriffe für die drei Namen im Namespace lauten wie folgt:

1. Unqualifizierte Namen oder Klassennamen, die kein Präfix enthalten, wie z. B. $comment = neuer Kommentar();. Wenn der aktuelle Namespace BlogArticle ist, wird Comment als BlogArticleComment analysiert. Wenn der Code, der Kommentar verwendet, keinen Code in einem Namensraum (im globalen Raum) enthält, wird der Kommentar als Kommentar analysiert.

2. Qualifizierter Name oder ein Name, der ein Präfix enthält, z. B. $comment = new ArticleComment();. Wenn der aktuelle Namespace Blog ist, wird Comment als BlogArticleComment analysiert. Wenn der Code, der Kommentar verwendet, keinen Code in einem Namensraum (im globalen Raum) enthält, wird der Kommentar als Kommentar analysiert.

3. Vollständig qualifizierter Name oder ein Name, der den globalen Präfix

-Operator enthält, z. B. $comment = new ArticleComment();. In diesem Fall wird Comment im Code immer in den Literalnamen ArticleComment aufgelöst.

Tatsächlich können diese drei Namen mit Dateinamen (z. B. comment.php), relativen Pfadnamen (z. B. ./article/comment.php) und absoluten Pfadnamen (z. B. /blog) verglichen werden /article/comment.php), was möglicherweise einfacher zu verstehen ist.

Erstellen Sie hier einen Blog-Bereich und verwenden Sie einen nicht qualifizierten Namen, um den aktuellen Blog-Bereich darzustellen. Dieser Aufruf wird nach der Instanziierung analysiert. Verwenden Sie einen qualifizierten Namen, um anzugeben, dass er relativ zum Blog-Bereich ist. Nach der Instanziierung wird dieser Aufruf in BlogArticleComment() geparst. Beachten Sie, dass vor der Klasse kein Backslash steht. Verwenden Sie einen vollständig qualifizierten Namen, der angibt, dass er sich auf den Blog-Bereich bezieht. Dieser Aufruf wird nach der Instanziierung analysiert. Beachten Sie den Unterschied zwischen einem Backslash vor der Klasse und keinem Backslash.

Der Beispielcode lautet wie folgt:

[html] view plain copy
<?php  
//创建空间Blog  
namespace Blog;  
class Comment { }  
//非限定名称,表示当前Blog空间  
//这个调用将被解析成 Blog\Comment();  
$blog_comment = new Comment();  
//限定名称,表示相对于Blog空间  
//这个调用将被解析成 Blog\Article\Comment();  
$article_comment = new Article\Comment(); //类前面没有反斜杆\  
//完全限定名称,表示绝对于Blog空间  
//这个调用将被解析成 Blog\Comment();  
$article_comment = new \Blog\Comment(); //类前面有反斜杆\  
//完全限定名称,表示绝对于Blog空间  
//这个调用将被解析成 Blog\Article\Comment();  
$article_comment = new \Blog\Article\Comment(); //类前面有反斜杆\  
//创建Blog的子空间Article  
namespace Blog\Article;  
class Comment { }  
?>

Das Obige ist der PHP-Namespace, den ich für alle zusammengestellt habe. Ich hoffe, dass er in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Detaillierte Einführung in den Unterschied zwischen PHP-Namespace und automatischem Laden

Detaillierte Einführung in PHP in Kombination mit Code Scope

Detaillierte Verwendungsmethode in PHP-Closure-Funktion() use()

Das obige ist der detaillierte Inhalt vonPHP-Namespace (ausführliche Antwort kombiniert mit Code). 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