>  기사  >  백엔드 개발  >  PHP 네임스페이스 원칙

PHP 네임스페이스 원칙

王林
王林원래의
2019-09-06 16:35:093436검색

PHP 네임스페이스 원칙

1. 네임스페이스란 무엇이며 네임스페이스를 정의하는 방법
일반적으로 PHP 프로그램 소스 코드 파일 또는 동일한 요청에는 두 개 이상의 클래스 이름, 상수 이름 또는 동일한 이름을 사용할 수 없습니다. 함수 이름, 이 경우 프로그램이 실행될 때 오류가 보고됩니다. 그러나 많은 실제 상황에서는 동일한 파일에 동일한 이름을 가진 클래스 이름, 상수 이름 또는 함수 이름이 두 개 이상 있는 것을 피할 수 없습니다. 이 경우 네임스페이스를 도입해야 합니다.

예:

<?php
function getUser () 
{
  return $username1;
}
  function getUser () 
  {
  return $username2;
  }

이와 같은 프로그램은 실행 시 오류를 보고합니다. 그래서 네임스페이스를 다음과 같이 소개합니다.

<?php
namespace get1function getUser () 
{
  return $username1;
}
namespace get2
function getUser () 
{
  return $username2;
}

네임스페이스의 의미를 어떻게 이해하나요? 위의 코드를 예로 들면, 이 PHP 파일은 폴더로, 내부의 두 파일은 두 개의 파일로 작동하지만 동일한 이름을 가진 두 개의 파일은 동일한 폴더에 허용되지 않으므로 두 개의 폴더로 나누어야 합니다. 다른 이름으로. 이것이 네임스페이스가 작동하는 방식입니다.

특별 참고 사항:
네임스페이스는 클래스 이름, 함수 이름 및 상수(const로 정의됨)에만 유효합니다.
파일의 앞 네임스페이스 앞에는 유효한 문자가 올 수 없습니다.

2. 네임스페이스는 어떻게 사용하나요?
예를 들어 위에 정의된 get2에서 getUser()를 어떻게 사용합니까?
1) 함수(또는 상수, 클래스명)에 접근할 때 네임스페이스를 지정하지 않으면 근접성 원칙(현재 네임스페이스 아래에서 접근)을 사용합니다.
2) 그러면 지정된 네임스페이스 아래의 콘텐츠에 어떻게 액세스합니까? 다음과 같습니다:

\get1\getUser(); // 访问get1下的getUser()方法

3. 다중 레벨 네임스페이스 및 세 가지 액세스 방법
1) 다중 레벨 네임스페이스:
PHP 프로젝트 파일이 폴더이고 해당 폴더 아래에 한 레벨의 하위 폴더가 있다고 가정해 보세요. , 첫 번째 수준 하위 폴더 아래에는 하위 폴더(보조 하위 폴더)가 있습니다. 네임스페이스 아래에도 소위 다중 레벨 네임스페이스가 있을 수 있습니다.

namespace app\Index\Controller;

다단계 네임스페이스입니다. 접근 방법은 일반 네임스페이스와 동일하다.

2) 네임스페이스의 세 가지 액세스 방법(상대 경로 및 절대 경로와 유사)
A. 정규화된 이름 액세스 방법
B. 정규화된 이름 액세스 방법

<?php
namespace app\get1
function getUser () 
{
  return $username1;
  }
  namespace get2
  function getUser () {
  return $username2;
  }
  getUser(); // 非限定名称访问方式
  \app\get1\getUser(); //完全限定名称访问方式,从根路径开始,类似绝对路径
  app\get1\getUser(); //限定名称访问方式,不是从根路径开始,类似相对路径

4. space 1) space 소개: 키워드 사용, 참고: space로 이동한 후 가져온 space의 함수(또는 클래스, 상수)에 액세스하려면 정규화된 이름 액세스를 사용해야 하며, 정규화된 이름 액세스를 사용할 수 없습니다. 이는 현재 네임스페이스의 함수(또는 클래스, 상수)에 액세스합니다.
2) 공간 요소 소개: 키워드 사용. 참고: 클래스만 도입하고 정규화되지 않은 이름을 사용하여 액세스할 수 있습니다.

더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트를 방문하세요:

PHP 비디오 튜토리얼

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

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