phpnamespace에서는 공간의 세 가지 이름인 정규화되지 않은 이름, 정규화된 이름, 정규화된 이름 및 PHP가 무엇인지에 대한 용어를 알아야 합니다. 그것들을 파싱하는 것입니다. 공식 문서가 너무 좋아서 그냥 직접 활용해 보았는데, 다음 내용을 익히는데 많은 도움이 되었습니다. 앞서 네임스페이스의 하위 공간과 공용 공간에 대해 배웠습니다. 네임스페이스의 호출 구문은 파일 경로와 유사하므로 하위 공간을 사용자 정의하여 각 공간 간의 관계를 설명할 수 있습니다.
네임스페이스의 세 이름에 대한 용어는 다음과 같습니다.
1. 수식되지 않은 이름 또는 접두사가 포함되지 않은 클래스 이름(예: $comment = new Comment();). 현재 네임스페이스가 BlogArticle인 경우 Comment는 BlogArticleComment로 구문 분석됩니다. Comment를 사용하는 코드에 네임스페이스(전역 공간)의 코드가 포함되어 있지 않으면 해당 Comment는 Comment로 구문 분석됩니다.
2. $comment = new ArticleComment();와 같이 정규화된 이름 또는 접두사가 포함된 이름입니다. 현재 네임스페이스가 Blog인 경우 Comment는 BlogArticleComment로 구문 분석됩니다. Comment를 사용하는 코드에 네임스페이스(전역 공간)의 코드가 포함되어 있지 않으면 해당 Comment는 Comment로 구문 분석됩니다.
3. 정규화된 이름 또는 전역 접두사 operator를 포함하는 이름(예: $comment = new ArticleComment();). 이 경우 Comment는 항상 코드에서 리터럴 이름 ArticleComment로 확인됩니다.
실제로 이 세 가지 이름은 파일 이름(예: comment.php), 상대 경로 이름(예: ./article/comment.php) 및 절대 경로 이름(예: /blog/article/comment)과 비교할 수 있습니다. .php)이므로 이해하기 더 쉬울 수 있습니다.
현재 블로그 공간을 나타내기 위해 정규화되지 않은 이름을 사용하여 여기에 블로그 공간을 만듭니다. 이 호출은 인스턴스화 후 구문 분석됩니다. 정규화된 이름을 사용하여 인스턴스화 후 이 호출은 BlogArticleComment()로 구문 분석됩니다. 블로그 공간에 절대적이라는 것을 나타내는 완전한 이름을 사용하십시오. 이 호출은 인스턴스화 후에 구문 분석됩니다. 클래스 앞에 백슬래시가 있는 것과 백슬래시가 없는 것의 차이점에 유의하십시오.
샘플 코드는 다음과 같습니다.
[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 { } ?>
위는 제가 모두를 위해 컴파일한 PHP 네임스페이스입니다. 앞으로 모든 분들께 도움이 되기를 바랍니다.
관련글 :
PHP에서 자세한 사용법 클로저 함수() use() 메소드
위 내용은 php 네임스페이스(코드와 결합된 자세한 답변)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!