> 백엔드 개발 > PHP 튜토리얼 > PHP에서 네임스페이스를 사용하는 방법

PHP에서 네임스페이스를 사용하는 방법

清浅
풀어 주다: 2023-04-05 06:00:01
원래의
5537명이 탐색했습니다.

PHP의 네임스페이스는 동일한 클래스나 메소드를 사용하여 발생하는 코드 충돌을 해결하는 방법입니다. 네임스페이스 명령을 사용하여 PHP 코드를 네임스페이스에 넣습니다. 클래스를 호출하려면 먼저 네임스페이스를 호출해야 합니다. PHP 프로그램을 작성할 때 동일한 이름을 가진 클래스나 메소드가 있기 때문에 프로그램이 실패한다는 것을 알게 됩니다. 그러나 PHP의 네임스페이스는 코드 충돌 문제를 해결하는 데 도움이 될 수 있습니다. 다음 기사에서는 네임스페이스 코드 사용 방법을 자세히 소개합니다

PHP에서 네임스페이스를 사용하는 방법

[추천 과정:

PHP 튜토리얼 ] 다음 예에는 Demo.php와 index.php라는 두 개의 파일이 있습니다. 두 파일은 동일한 디렉터리에 있으며 Demo.php 파일에 네임스페이스와 Demo 클래스가 작성되어 있습니다. index.php는 Demo.php를 호출합니다. 다음 예제에서 "출력 결과"는 브라우저가 index.php에 액세스한다는 의미입니다.

Demo.php 파일 코드

<?php
namespace DemoNameSpace;
 
class Demo {
    private $mysqlHandle;
 
    public function __construct() {
        echo &#39;This is namespace of PHP demo ,The Demo magic constant "__NAMESPACE__" is &#39;.__NAMESPACE__;
    }
}
?>
로그인 후 복사

index.php 파일 코드

<?php
    include &#39;Demo.php&#39;;
    use DemoNameSpace\Demo;
    $DemoObj = new Demo();
?>
로그인 후 복사

출력 결과:

“This is namespace of PHP demo ,The Demo magic constant "__NAMESPACE__" is DemoNameSpace”
로그인 후 복사
위 예에 대한 설명: Demo.php에 _NAMESPACE__ 매직 상수가 있습니다. 현재 네임스페이스 이름의 문자열입니다. 어떤 네임스페이스 코드에도 포함되지 않습니다. "

Demo.php는 변경되지 않습니다. index.php 파일을 변경하세요

<?php
    include &#39;Demo.php&#39;;
    $Demo = new Demo();
?>
로그인 후 복사
.

출력 결과:

“Fatal error: Class &#39;Demo&#39; not found in F:\JJserver\demo\index.php on line 4”
로그인 후 복사
일반적인 "치명적인 오류" 메시지입니다. 기존 PHP 프로그래밍 아이디어에 따르면 여기의 출력은 위의 출력과 일치해야 하지만 여기에는 치명적인 오류가 있습니다. 그러나 Demo.php 파일에서 "namespace DemoNameSpace;" 문을 제거(또는 주석 처리)하면 정상이 됩니다. 이는 우리가 일반적으로 클래스를 작성하고 클래스를 호출하는 가장 일반적인 방법입니다.

요약:

네임스페이스를 사용하는 출력 상황과 네임스페이스를 사용하지 않는 출력 상황을 비교하고, 네임스페이스 정의를 추가하여 이해하면 위의 치명적인 오류 상황을 쉽게 이해할 수 있습니다. Demo.php에 네임스페이스가 정의되어 있습니다. 즉, 네임스페이스 뒤에 Demo 클래스가 정의되고 Demo 클래스가 DemoNameSpace 네임스페이스에 병합되므로 이 Demo 클래스를 호출하려면 먼저 이 DemoNameSpace를 호출해야 합니다. 즉, index.php 파일에서 "useDemoNameSpaceDemo" 문을 사용하세요

[관련 권장사항:

PHP의 네임스페이스는 무엇인가요

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿