Maison  >  Article  >  développement back-end  >  À propos de l'espace de noms PHP (combiné avec des exemples de code, simples et faciles à comprendre)

À propos de l'espace de noms PHP (combiné avec des exemples de code, simples et faciles à comprendre)

亚连
亚连original
2018-05-17 17:21:191695parcourir

Ce qui suit est l'espace de noms PHP que j'ai compilé pour vous. Les étudiants intéressés peuvent y jeter un œil.

Le premier fichier
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

Le deuxième fichier
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
Le troisième fichier est le fichier qui charge l'espace de noms ci-dessus

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

La classe d'espace de noms peut être analogisée au système de répertoires de fichiers
nouvelle Une classe d'un espace de noms [Ou fonctions, variables, etc.] C'est-à-dire appeler le contenu d'un fichier dans un certain répertoire
Le nom complet est le chemin pour trouver le contenu du fichier
Le nom non complet est équivalent à
utilisez pour introduire l'espace de nommage, attribuez le « chemin relatif » à une variable, qui est par défaut le dernier sous-espace.
Utilisez le mot-clé as pour définir le nom de la variable. La variable est un alias, donc des alias et non. -les noms pleinement qualifiés ne peuvent pas être utilisés en même temps (car un use[+as] ne peut produire qu'un seul alias).
Système de répertoire de fichiers analogique :
Emplacement du fichier : /root/path/file/fileContent ;
utilisez /root/path/file ie file='/root/path/file′ pour que le chemin du fichier soit file='/root/path/file′ donc le chemin du fichier est file/fileContent
* et l'espace de noms Index dans index.php équivaut à indiquer l'emplacement actuel du fichier
donc si dans index.php Le le contenu du fichier est modifié pour

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

utilisation, ce qui équivaut à charger uniquement la classe Cat dans l'espace de noms AnimalsCat, et la fonction root() n'est pas "chargée"
, donc l'exécution lancera un erreur : root()Fonction non déclarée

Ce qui précède est l'espace de noms PHP que j'ai compilé pour vous. J'espère qu'il vous sera utile à l'avenir.

Articles connexes :

Espace de noms PHP (réponse détaillée combinée avec le code)

Introduction détaillée à l'espace de noms PHP et chargement automatique La différence

Combiné avec le code pour présenter la portée en php en détail

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn