Heim  >  Artikel  >  Backend-Entwicklung  >  Über den PHP-Namespace (kombiniert mit Codebeispielen, einfach und leicht verständlich)

Über den PHP-Namespace (kombiniert mit Codebeispielen, einfach und leicht verständlich)

亚连
亚连Original
2018-05-17 17:21:191692Durchsuche

Das Folgende ist der Namespace von PHP, den ich für Sie zusammengestellt habe. Interessierte Studenten können einen Blick darauf werfen.

Erste Datei
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

Zweite Datei
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
Die dritte Datei ist die Datei, die den oben genannten Namespace lädt

<?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

Die Namespace-Klasse kann mit dem Dateiverzeichnissystem analogisiert werden
neu Eine Klasse in einem Namespace [oder Funktion, Variable usw. usw. ] Das heißt, den Inhalt einer Datei in einem bestimmten Verzeichnis aufzurufen.
Der vollständig qualifizierte Name ist der Pfad, um den Inhalt in der Datei zu finden.
Der nicht vollständig qualifizierte Name entspricht
. Verwenden Sie das 'relative path' beim Einführen des Namensraums ' Weisen Sie einer Variablen einen Wert zu, der standardmäßig den letzten Unterraum verwendet.
Verwenden Sie das Schlüsselwort as, um den Namen der Variablen festzulegen. Die Variable ist ein Alias ​​und nicht vollständig qualifizierte Namen kann nicht gleichzeitig verwendet werden (da ein use[+as ] Es kann nur ein Alias ​​angegeben werden).
Analoges Dateiverzeichnissystem:
Dateispeicherort: /root/path/file/fileContent;
verwenden Sie /root/path/file, also file='/root/path/file′, also lautet der Pfad der Datei file='/root/path/file′, also ist der Pfad der Datei file/fileContent
* und der Namespace-Index in index.php entspricht der Angabe des aktuellen Dateispeicherorts
, wenn also in index.php Der Dateiinhalt wird auf

<?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

Verwendung geändert, was dem Laden nur der Cat-Klasse im Namespace AnimalsCat entspricht und die Funktion root() nicht „geladen“ ist
, sodass beim Ausführen ein Fehler ausgegeben wird: root()-Funktion Nicht deklariert

Das Obige ist der PHP-Namespace, den ich für Sie zusammengestellt habe. Ich hoffe, dass er Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

PHP-Namespace (detaillierte Antwort kombiniert mit Code)

Detaillierte Einführung in den PHP-Namespace und das automatische Laden Der Unterschied

Kombiniert mit dem Code, um den Umfang in PHP im Detail vorzustellen

Das obige ist der detaillierte Inhalt vonÜber den PHP-Namespace (kombiniert mit Codebeispielen, einfach und leicht verständlich). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn