>  기사  >  백엔드 개발  >  PHP 네임스페이스 및 가져오기 사용에 대한 자세한 사용 가이드

PHP 네임스페이스 및 가져오기 사용에 대한 자세한 사용 가이드

亚连
亚连원래의
2018-05-17 13:37:121653검색

PHP에서는 동일한 이름의 함수나 클래스가 허용되지 않습니다. 프로젝트에서 프로그래머가 정의한 클래스 이름이나 함수 이름이 반복적으로 충돌하는 것을 방지하기 위해 PHP5.3에서는 네임스페이스 개념을 도입했습니다.

1. 네임스페이스, 즉 코드를 서로 다른 공간으로 나누는 것입니다. 서로 독립적이며 충돌하지 않습니다. PHP 파일에는 여러 개의 네임스페이스가 존재할 수 있으며 첫 번째 네임스페이스 앞에는 코드가 있을 수 없습니다. 콘텐츠 공간이 선언된 이후의 코드는 이 네임스페이스에 속합니다(예:

<?php
    echo 111;       //由于namespace前有代码而报错
    namespace Teacher;    class Person{
        function __construct(){
            echo &#39;Please study!&#39;;
        }
    }12345678

2). 다른 공간에서 클래스나 메서드를 호출하는 경우 네임스페이스를 지정해야 합니다. 예:

<?php
    namespace Teacher;    class Person{
        function __construct(){
            echo &#39;Please study!<br/>&#39;;
        }
    }    function Person(){
        return &#39;You must stay here!&#39;;
    };    namespace Student;    class Person{
        function __construct(){
            echo &#39;I want to play!<br/>&#39;;
        }
    }    new Person();                    //本空间(Student空间)
    new \Teacher\Person();           //Teacher空间
    new \Student\Person();           //Student空间
    echo \Teacher\Person();          //Teacher空间下Person函数
    //输出:
    I want to play!
    Please study!
    I want to play!
    You must stay here!12345678910111213141516171819202122232425

3. 네임스페이스에 도입된 다른 파일은 이 네임스페이스에 속하지 않고 공용 공간이나 파일 자체에 정의된 네임스페이스에 속합니다. 예:

먼저 1.php 및 2.php 파일을 정의합니다:

<?php     //1.phpclass Person{
    function __construct(){
            echo &#39;I am one!<br/>&#39;;
        }
}123456
<?phpnamespace Newer;require_once &#39;./1.php&#39;;new Person();      //报错,找不到Person;new \Person();     //输出 I am tow!;12345
<?php     //2.phpnamespace Twoclass Person{    function __construct(){
            echo &#39;I am tow!<br/>&#39;;
        }
}1234567
<?php
namespace New;require_once &#39;./2.php&#39;;new Person();      
//报错,(当前空间)找不到Person;new \Person();     
//报错,(公共空间)找不到Person;new \Two\Person();  
//输出 I am tow!;123456

4. use를 사용하는 방법을 살펴보겠습니다. (use는 향후 참조를 위해 축약될 수 있습니다.)

   namespace School\Parents;    class Man{
        function __construct(){
            echo &#39;Listen to teachers!<br/>&#39;;
        }
    }    namespace School\Teacher;    class Person{
        function __construct(){
            echo &#39;Please study!<br/>&#39;;
        }
    }    namespace School\Student;    class Person{
        function __construct(){
            echo &#39;I want to play!<br/>&#39;;
        }
    }    new Person();                   //输出I want to play!
    new \School\Teacher\Person();   //输出Please study!
    new Teacher\Person();           //报错
    ----------    use School\Teacher;  
    new Teacher\Person();           //输出Please study!    
    ----------    use School\Teacher as Tc;  
    new Tc\Person();           //输出Please study!  
    ----------    use \School\Teacher\Person; 
    new Person();           //报错
    ----------    use \School\Parent\Man; 
    new Man();           //报错

위는 제가 설명한 것입니다. 모두를 위해 컴파일된 PHP 네임스페이스 네임스페이스 및 가져오기 사용 사용법이 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

php에서 일반적으로 사용되는 매직 메소드

일반적인 PHP 함수

PHP 네임스페이스의 디자인 아이디어와 단점

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

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