>백엔드 개발 >PHP 튜토리얼 >PHP에서 네임스페이스 선언 및 사용

PHP에서 네임스페이스 선언 및 사용

无忌哥哥
无忌哥哥원래의
2018-06-28 15:52:391778검색

* 네임스페이스 선언 및 사용

* 1. 키워드 사용: 네임스페이스

* 2.php5.3+

* 3 . 네임스페이스 앞에는 선언과 주석 외에는 어떤 코드도 들어갈 수 없으며 html은 허용되지 않습니다

* 4. 네임스페이스는 기본적으로 전역 위치에서 시작하며, 전역 공간은 와 유사하게 표시됩니다. 루트 디렉터리 #🎜 🎜#

* 5. 현재 스크립트가 네임스페이스를 선언하는 경우 모든 멤버에 대한 액세스는 시스템 함수

//1을 포함하여 네임스페이스를 사용해야 합니다. 🎜 🎜#
namespace one;
class Demo{public $name='Peter Zhu';}
const SITE='PHP中文网';
function add($a,$b){return $a+$b;}


//같은 이름의 클래스를 선언하려면 상수와 함수가 다른 네임스페이스를 선언할 수 있습니다

/ /2. 스크립트에서는 여러 네임스페이스가 허용됩니다.

//네임스페이스 선언: 2개, 참조용으로 tow 사용

namespace two;

//이제 Demo 클래스 선언, SITE 상수, 함수 추가 , 충돌은 없을 것입니다

class Demo{public $name='朱老师';}
const  SITE = 'www.php.cn';
function add($a,$b){return $a+$b;}

//이것은 다른 디렉터리에 동일한 이름의 파일을 생성하도록 허용하는 것과 매우 유사하다는 것을 알 수 있습니다. 원칙은 동일합니다

echo (new Demo)->name, &#39;<br>&#39;; //默认输出的是当前空间的内容

//현재 네임스페이스가 무엇인지 확인하시겠습니까? 시스템 사전 설정 상수:__NAMESPACE__

echo &#39;当前命名空间是: &#39;,__NAMESPACE__,&#39;<br>&#39;;

//현재 네임스페이스를 가져와 현재 스페이스의 멤버에 액세스할 수도 있습니다

#🎜 🎜#//현재 네임스페이스로 클래스 이름 생성

$className = __NAMESPACE__.&#39;\Demo&#39;;
echo (new $className)->name,&#39;<br>&#39;;

//전역 공간에서 시작하여 전체 네임스페이스 이름을 가져올 수 있습니다. 이는 루트 디렉터리에서 시작하는 것과 동일합니다#🎜 🎜##🎜 🎜#//전문 용어: 정규화된 이름

echo (new \two\Demo)->name, &#39;<hr>&#39;;

//3. 공간 간 액세스를 달성하는 방법

//액세스하려는 경우 스페이스 원의 Demo 클래스 원 스페이스의 Demo 클래스에서 Access 멤버의 속성을 조작하는 방법

echo &#39;one空间的类成员:&#39;,(new \one\Demo)->name,&#39;<br>&#39;;

//4. 네임스페이스를 선언하는 스크립트에서 시스템이 미리 정의한 메소드에 액세스하는 방법은 무엇입니까?

//예를 들어 단일 문자 배열을 선언합니다.

$welcome = &#39;php中文网欢迎您&#39;;
\print_r($welcome); echo &#39;<br>&#39;;
print($welcome); echo &#39;<hr>&#39;;

//방금 공간에서 전역 멤버에 액세스하는 기능을 여기에 추가하지 않는다고 했습니다. # 🎜🎜#

//사용자가 추가하지 않으면 먼저 이 공간에서 var_dump() 함수를 검색하기 때문에

//찾지 못하면 전역 공간에서 검색하므로 오류가 보고되지 않습니다

//그러나 현재 두 공간에 var_dump() 함수도 생성하면 현재 공간에서 사용자 정의 var_dump()만 동일한 이름의 시스템 함수는 실행되지 않습니다. Call

function print_r($arg)
{
    echo &#39;我是当前空间声明的函数调用:&#39;.$arg;
}
print_r($welcome); echo &#39;<br>&#39;;

//동등한 호출 구문:

\two\print_r($welcome);

//참고: 이 print_r() 시스템에 내장된 print_r()과는 아무런 관련이 없고 이름만 같습니다

//마치 상하이에도 장강길이 있고 우리에게도 장강길이 있는 것과 같습니다 허페이의 도로. 이름이 같은 것 외에는 이 두 도로는 아무런 관계가 없습니다.

// Shanghai City Changjiang Road, Baoshan District

// Changjiang Road, Luyang District, 허페이시

// 이것이 같은 길이라고 생각하는 사람은 아무도 없을 것이라고 믿습니다.

/ /사실 이 두 기능의 전체 호출 설명은 다음과 같아야 합니다. :

//1. 시스템 호출:

\print_r($welcome);

//2. 현재 공간 호출:

\two\print_r($welcome);

//이름은 다음과 같습니다. 똑같아도 소유지가 다르다

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

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