>  기사  >  백엔드 개발  >  PHP 네임스페이스 정보(코드 예제와 결합, 간단하고 이해하기 쉬움)

PHP 네임스페이스 정보(코드 예제와 결합, 간단하고 이해하기 쉬움)

亚连
亚连원래의
2018-05-17 17:21:191696검색

다음은 제가 여러분을 위해 컴파일한 PHP의 네임스페이스입니다. 관심 있는 학생들은 한 번 살펴보세요.

첫 번째 파일
cat.class.php

<?php
namespace Animals\Cat;        
class Cat    
{        
    public function speak()        
    {            
        echo &#39;miaow&#39;;        
    }    
}    
    function root()
    {        
        return &#39;cat.class.php&#39;;
    }
?>123456789101112131415

두 번째 파일
dog.class.php

<?php
namespace Animals\Dog;    
    class Dog
    {
        public function speak()
        {
            echo &#39;woof&#39;;
        }
    }    class Cat
    {
        public function speak()
        {
            echo &#39;miaoth&#39;;
        }
    }    function root(){
        return &#39;dog.class.php&#39;;
    }
?>1234567891011121314151617181920212223

index.php
세 번째 파일은 위 네임스페이스를 로드하는 파일

<?php
    namespace Index;    
    require_once &#39;cat.class.php&#39;;    
    require_once &#39;dog.class.php&#39;;    
    use Animals\Cat;    
    use Animals\Dog as Snoopi;
        
    //完全限定名
    $cat1 = new \Animals\Cat\Cat();  
    $cat1->speak();    
    echo &#39;<br/>&#39;;    
    $cat2 = new \Animals\Dog\Cat();    
    $cat2->speak();    
    echo &#39;<br/>&#39;;    
    $dog1 = new \Animals\Dog\Dog();    
    $dog1->speak();    
    echo &#39;<br/>&#39;; 
       
    //非完全限定名
    $cat3 = new Cat\Cat();    
    $cat3->speak();    
    echo &#39;<br/>&#39;; 
       
    //别名 *别名和非完全限定名 不能同时使用
    $dog3 = new Snoopi\Dog();    
    $dog3->speak();    
    //不止函数,该命名空间下的任何可用资源都可调用[函数、变量、常量等等]
    echo Snoopi\root();    
    echo &#39;<br/>&#39;;
?>12345678910111213141516171819202122232425262728293031323334

Name 공간 클래스 파일 디렉터리 시스템과 비교할 수 있습니다
new 네임스페이스의 클래스[또는 함수, 변수 등]는 특정 디렉터리에 있는 파일의 내용을 호출하는 것입니다.
완전한 이름은 파일의 내용을 검색하는 것입니다.
Non 정규화된 이름은
use와 동일합니다. 네임스페이스를 도입할 때 변수에 '상대 경로'를 할당합니다. 변수의 기본값은 마지막 하위 공간입니다.
as 키워드를 사용하여 이름을 설정합니다. 변수는 별칭이므로 별칭과 정규화되지 않은 이름을 동시에 사용할 수 없습니다(한 번 사용[+as]하면 하나의 별칭만 생성할 수 있기 때문).
아날로그 파일 디렉터리 시스템:
파일 위치: /root/path/file/fileContent;
/root/path/file을 사용합니다. 즉, file='/root/path/file′이므로 파일 경로는 file='/root/입니다. path/file'따라서 파일의 경로는 file/fileContent입니다.
*그리고 index.php의 네임스페이스 Index는 현재 파일 위치를 나타내는 것과 동일합니다.
따라서 index.php의 파일 내용을

<?php
    require_once &#39;cat.class.php&#39;;    
    require_once &#39;dog.class.php&#39;;    
    use Animals\Cat\Cat;#引入该命名空间下的类
    $cat4 = new Cat();    
    $cat4->speak();
    root(); 
?>123456789

로 수정하면 다음과 같습니다. AnimalsCat 네임스페이스의 Cat 클래스만 로드되고 root() 함수는 '로드'되지 않습니다.
따라서 작업에서 오류가 발생합니다. root() 함수가 선언되지 않았습니다

위는 PHP의 네임스페이스입니다. 모든 사람을 위해 편집한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 글:

PHP 네임스페이스(상세 답변과 코드 결합)

PHP 네임스페이스와 자동 로딩의 차이점 자세히 소개

PHP의 범위를 코드로 자세히 소개

위 내용은 PHP 네임스페이스 정보(코드 예제와 결합, 간단하고 이해하기 쉬움)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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