PHP 네임스페이스의 가장 명확한 기능 중 하나는 중복 이름 문제를 해결하는 것입니다. PHP에서는 두 함수나 클래스가 동일한 이름을 가질 수 없습니다. 그렇지 않으면 치명적인 오류가 발생합니다. 이전 장에서는 PHP 네임스페이스란 무엇인지 를 소개했습니다. PHP 공식 웹사이트에서는 이를 명확하게 정의하고 시각적으로 설명했습니다. 다음은 PHP 공식 웹사이트에서 직접 복사한 단락입니다. 넓은 의미에서 네임스페이스는 사물을 캡슐화하는 방법입니다. 이 추상적인 개념은 여러 곳에서 찾아볼 수 있습니다. 예를 들어 디렉터리는 운영 체제에서 관련 파일을 그룹화하는 데 사용되며 디렉터리에 있는 파일의 네임스페이스 역할을 합니다. 예를 들어, foo.txt 파일은 /home/greg 및 /home/other 디렉토리에 동시에 존재할 수 있지만 두 개의 foo.txt 파일이 동일한 디렉토리에 존재할 수는 없습니다. 또한 /home/greg 디렉토리 외부에서 foo.txt 파일에 액세스할 때 /home/greg/foo.txt를 가져오려면 파일 이름 앞에 디렉토리 이름과 디렉토리 구분 기호를 넣어야 합니다. 이 원칙을 프로그래밍 분야에 적용한 것이 네임스페이스의 개념입니다.
PHP 네임스페이스에 네임스페이스 키워드를 도입한 것은 PHP 객체지향 프로그래밍 과정에서 발생하는 다양한 "문제"를 해결하기 위한 것으로, 구체적인 문제는 다음과 같습니다. >
코드는 다음과 같습니다.
<?php //创建一个名为'Article'的命名空间 namespace Article; //此Comment属于Article空间的元素 class Comment { } //创建一个名为'MessageBoard'的命名空间 namespace MessageBoard; //此Comment属于MessageBoard空间的元素 class Comment { } ?>다른 공간 사이에서는 다른 요소를 직접 호출할 수 없으며 네임스페이스 구문을 사용해야 합니다. 샘플 코드는 다음과 같습니다.
<?php namespace Article; class Comment { } namespace MessageBoard; class Comment { } //调用当前空间(MessageBoard)的Comment类 $comment = new Comment(); //调用Article空间的Comment类 $article_comment = new \Article\Comment(); ?>보시다시피 MessageBoard 공간의 기사 공간에 있는 Comment 클래스를 호출할 때 파일 경로와 같은 구문이 사용됩니다.
스페이스 이름 요소 이름
클래스를 제외하고 함수 및 상수의 사용법은 동일합니다. 아래에서는 두 공간에 대한 새 요소를 생성하고 해당 값을 메시지보드 공간에 출력합니다. 코드는 다음과 같습니다.<?php namespace Article; const PATH = '/article'; function getCommentTotal() { return 100; } class Comment { } namespace MessageBoard; const PATH = '/message_board'; function getCommentTotal() { return 300; } class Comment { } //调用当前空间的常量、函数和类 echo PATH; //message_board echo getCommentTotal(); //300 $comment = new Comment(); //调用Article空间的常量、函数和类 echo \Article\PATH; //article echo \Article\getCommentTotal(); //100 $article_comment = new \Article\Comment(); ?>다음 결과를 얻습니다.
/message_board300/article100
php.cn Dugu Jiujian (4)-php 비디오 튜토리얼"
2. 네이밍 스페이스: 같은 이름, 같은 성별을 갖고 있지만 서로 다른 시공간에 속해 있습니다초보부터 마스터까지 PHP 프로그래밍에 대한 전체 튜토리얼 세트위 내용은 PHP 네임스페이스의 역할에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!