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