>백엔드 개발 >PHP 문제 >PHP 네임스페이스 사용법

PHP 네임스페이스 사용법

王林
王林원래의
2020-09-28 10:58:271586검색

php 네임스페이스 사용: [namespace Article;]은 Article이라는 이름의 네임스페이스를 만드는 것을 의미합니다. 현재 스크립트 파일의 첫 번째 네임스페이스 앞에는 코드가 있을 수 없습니다.

PHP 네임스페이스 사용법

네임스페이스의 가장 명확한 목적 중 하나는 중복 이름 문제를 해결하는 것입니다. PHP에서는 두 함수나 클래스가 동일한 이름을 가질 수 없습니다. 그렇지 않으면 치명적인 오류가 발생합니다. 이런 경우에는 이름 중복만 피하면 해결이 됩니다. 가장 일반적인 방법은 접두사에 동의하는 것입니다.

(추천 튜토리얼: php 비디오 튜토리얼)

네임스페이스는 코드를 여러 공간(영역)으로 나누고 각 공간의 상수, 함수, 클래스(게으르게 해서 아래에서는 요소라고 부르겠습니다) 이름 이는 우리가 자주 언급하는 '캡슐화' 개념과 다소 유사합니다.

네임스페이스를 생성하려면 다음과 같이 네임스페이스 키워드를 사용해야 합니다.

<?php
//创建一个名为&#39;Article&#39;的命名空间
namespace Article;
?>

현재 스크립트 파일의 첫 번째 네임스페이스 앞에는 어떤 코드도 있어서는 안 된다는 점에 유의해야 합니다. 다음은 잘못 작성되었습니다.

예제 1

//在脚本前面写了一些逻辑代码
<?php
$path = "/";
class Comment { }
namespace Article;
?>

예제 2

</html>
<?php
namespace Article;
?>

첫번째 네임스페이스를 왜 말하려는 걸까요? 동일한 스크립트 파일에 여러 네임스페이스를 만들 수 있기 때문입니다.

아래 두 개의 네임스페이스를 생성하고 이 두 공간 각각에 Comment 클래스 요소를 추가했습니다.

<?php
//创建一个名为&#39;Article&#39;的命名空间
namespace Article;
//此Comment属于Article空间的元素
class Comment {
}
//创建一个名为&#39;MessageBoard&#39;的命名空间
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 클래스를 호출할 때 파일 경로와 같은 구문이 사용됩니다. 공간 이름 요소 이름

클래스 외에 함수 및 상수의 사용법은 동일합니다. 아래에는 새 요소가 생성됩니다. 두 공간 모두에 대해 해당 값이 MessageBoard 공간에 출력됩니다.

<?php
namespace Article;
const PATH = &#39;/article&#39;;
function getCommentTotal() {
	return 100;
}
class Comment {
}
namespace MessageBoard;
const PATH = &#39;/message_board&#39;;
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();
?>

그런 다음 Article 공간의 요소 데이터를 얻었습니다.

관련 권장 사항: php training

위 내용은 PHP 네임스페이스 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.