>  기사  >  백엔드 개발  >  PHP 네임스페이스에서 use 키워드를 사용하는 방법

PHP 네임스페이스에서 use 키워드를 사용하는 방법

青灯夜游
青灯夜游원래의
2021-09-30 17:05:173710검색

PHP에서 use 키워드는 "use 네임스페이스;" 구문을 사용하여 네임스페이스를 가져오는 데 사용할 수 있습니다. 또한 "use 네임스페이스를 별칭으로 사용" 구문을 사용하여 함수와 상수를 가져오고 별칭을 설정하는 데 사용할 수도 있습니다. .

PHP 네임스페이스에서 use 키워드를 사용하는 방법

이 튜토리얼의 운영 환경: windows7 시스템, PHP7.1 버전, DELL G3 컴퓨터

네임스페이스란 무엇입니까?

넓은 의미에서 네임스페이스는 사물을 캡슐화하는 방법이며 이러한 추상적인 개념은 여러 곳에서 볼 수 있습니다. 예를 들어 디렉터리는 운영 체제에서 관련 파일을 그룹화하는 데 사용되며 디렉터리에 있는 파일의 네임스페이스 역할을 합니다.

네임스페이스의 정의

PHP의 네임스페이스는 PHP5.3에서 추가되었습니다. C++를 안다면 네임스페이스는 새로운 것이 아닙니다. 그러나 네임스페이스는 PHP에서 여전히 매우 중요합니다.

PHP 네임스페이스는 다음 두 가지 유형의 문제를 해결할 수 있습니다.

  • 사용자가 작성한 코드와 PHP 내부 클래스/함수/상수 또는 타사 클래스/함수/상수 간의 이름 충돌

  • 매우 깁니다. 소스 코드의 가독성을 높이기 위해 식별자 이름에 대한 별칭(또는 짧은) 이름(종종 첫 번째 유형의 문제를 완화하기 위해 정의됨).

네임스페이스 정의(네임스페이스 키워드 사용)

모든 합법적인 PHP 코드가 네임스페이스에 포함될 수 있지만 클래스(추상 클래스 및 특성 포함), 인터페이스, 함수 및 상수만 코드에 영향을 받습니다. 네임스페이스.

네임스페이스의 정의는 키워드 네임스페이스를 통해 선언해야 합니다. 구문 형식은 다음과 같습니다.

namespace 命名空间名;

[예] 네임스페이스를 정의하는 방법을 보여드리겠습니다.

<?php
    namespace MyProject;    // 定义名为 MyProject 的命名空间。
    const CONNECT_OK = 1;
    class Myclass {
        /* ... */
    }
    function Myfunc() {
        /* ... */
    }
?>

선언하기 전에 소스 파일 인코딩을 정의하는 것 외에도 이러한 방식으로 선언문을 제외하고 PHP가 아닌 모든 코드(공백 포함)는 네임스페이스 선언 앞에 나타날 수 없습니다.

네임스페이스 사용: alias/import

PHP에서는 별칭 참조 또는 가져오기를 통해 외부 네임스페이스를 사용할 수 있습니다. 이는 네임스페이스의 중요한 기능입니다. 이는 Unix 계열 파일 시스템에서 다른 파일이나 디렉터리에 대한 기호 링크를 만드는 방법과 다소 비슷합니다.

use 키워드를 사용하여 네임스페이스 가져오기를 구현하세요. PHP5.6부터 함수와 상수를 가져올 수 있으며 별칭이 설정됩니다. 구문 형식은 다음과 같습니다.

use namespace;

PHP에서는 별칭은 use 및 as 연산자를 통해 구현됩니다. 구문 형식은 다음과 같습니다.

use 命名空间 as 别名;

[예제] 별칭을 가져오고 사용하려면 use 연산자를 사용합니다.

<?php
    namespace foo;
    use My\Full\Classname as Another;
    // 下面的例子与 use My\Full\NSname as NSname 相同
    use My\Full\NSname;
    // 导入一个全局类
    use ArrayObject;
    // 导入一个函数
    use function My\Full\functionName;
    // 导入一个函数并定义别名
    use function My\Full\functionName as func;
    // 导入一个常量
    use const My\Full\CONSTANT;
    $obj = new namespace\Another;   // 实例化 foo\Another 对象
    $obj = new Another;             // 实例化 My\Full\Classname 对象
    NSname\subns\func();            // 调用 My\Full\NSname\subns\func 函数
    $a = new ArrayObject(array(1)); // 实例化 ArrayObject 对象
                                    // 如果不使用 "use \ArrayObject" ,则实例化一个 foo\ArrayObject 对象
    func();                         // 调用 My\Full\functionName 函数
    echo CONSTANT;                  // 打印 My\Full\CONSTANT 常量
?>

참고: 네임스페이스의 이름(FooBar와 같이 네임스페이스 구분 기호를 포함하는 정규화된 이름 및 FooBar와 같이 네임스페이스 구분 기호를 포함하지 않는 상대 전역 이름)의 경우 선행 백슬래시는 불필요하므로 권장되지 않습니다. 이름은 정규화되어야 하며 현재 네임스페이스를 기준으로 확인되지 않습니다.

작업을 단순화하기 위해 PHP는 ,로 구분된 여러 네임스페이스 가져오기도 지원합니다. 샘플 코드는 다음과 같습니다.

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another;     // 实例化 My\Full\Classname 对象
    NSname\subns\func();    // 调用 My\Full\NSname\subns\func 函数
?>

가져오기 작업은 컴파일되고 실행되지만 동적 클래스 이름, 함수 이름 또는 상수 이름은 no입니다.

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another; // 实例化一个 My\Full\Classname 对象
    $a = &#39;Another&#39;;
    $obj = new $a;      // 实际化一个 Another 对象
?>

또한 가져오기 작업은 정규화되지 않은 이름과 정규화된 이름에만 영향을 미칩니다. 정규화된 이름은 결정적이므로 가져오기의 영향을 받지 않습니다.

추천 학습: "PHP 비디오 튜토리얼"

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

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