Heim  >  Artikel  >  Backend-Entwicklung  >  Unendliche Nistpuppen, der Namenspfad des Namensraums

Unendliche Nistpuppen, der Namenspfad des Namensraums

autoload
autoloadOriginal
2021-02-26 17:32:012966Durchsuche

Nachdem Sie namespace gelernt haben, finden Sie hier eine kurze Zusammenfassung der Namespaces. namespace,顺手来个命名空间的小总结。

1.命名空间的使用目的

   PHP函数常量是不允许同名的。为了解决这三者的同名问题,所以出现了命名空间,故而命名空间只影响类、函数、常量(const)。

2.命名空间的使用格式

      a.可以命名一个空间

 <?php
namespace space1;//namespace关键字+空间名 
代码;
 ?>

      b.也可以同时命名多个空间

<?php
namespace space1;//namespace关键字 +空间名 
代码1;
namespace space2;
代码2;
namespace space3;
代码3;
.......//代码1,代码2,代码3,可相同亦可不同
.......
 ?>

   注意事项:如果一个php文件中,第一个空间的定义义必须放在第1行。不过凡事都有例外,在声明命名空间之前还有唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。例如下面的代码会报错。

<html>
<?php
namespace space1;
namespace space2;
?>
</html>

3.命名空间的访问

  命名空间的访问分为:非限定空间访问限定空间访问完全限定空间访问

       a.非限定空间访问

<?php
namespace space3;
   function f1(){
   echo "space3";
   }
namespace space3\space2;//其中"\"代表space2是space3的子空间,同理space3是space2的父空间。
   function f1(){
     echo "space2";
     }
namespace space3\space2\space1;
   function f1(){
     echo "space1";
     }
   f1();//对上面空间成员进行访问,输出结果为:space1
?>

      b.限定空间访问

<?php
namespace space2\space1;
    function f1(){
     echo "space1";
      }
namespace space2;
function f1(){
     echo "space2";
      }
   f1();//此时输出的是 space2
   space1\f1();//此时输出的是space1
?>

      c.完全限定空间访问

<?php
namespace space3;
   function f1(){
   echo "space3";
   }
namespace space2;
      function f1(){
     echo "space2";
     }
namespace space1;
     function f1(){
     echo "space1";
     }
   f1();//对上面空间成员进行访问,输出结果为:space1
   \space3\f1();//对space3进行访问,输出结果为:space3
   \space2\f1();//对space2进行访问,输出结果为:space2
?>

4.引入空间成员

      a.use 空间名空间名 【as 别名】:将指定空间引入到当前空间。同可以使用as关键字为被引入的空间起个别名

      b.use 空间名空间名成员类 【as

1. Der Zweck der Verwendung von Namespace

In PHP, function, class, constant code> erlaubt nicht den gleichen Namen. Um das gleichnamige Problem unter diesen drei zu lösen, wurden Namespaces eingeführt, sodass Namespaces nur <code>Klassen, Funktionen, Konstanten (const) betreffen.

    2. Das Verwendungsformat des Namespace
  • a. Sie können ein Leerzeichen benennen

    <?php
    namespace space3;
       function f1(){
       echo "space3";
       }
    //当前所有访问如果使用非限定名称都代表访问当前空间内的元素
    f1();//访问space3下f1()函数
    //想要访问函数
    define(&#39;PI&#39;,3.14);//space3下没有define()函数,全局函数有
    //想要访问系统常量
    echo PHP_VERSION; //space3下没有define()函数,全局函数有
    
    
    //想要访问类
    
    //错误方案
    //$m=new Mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;root&#39;);//系统会提示类不存在
    
    //正确方案
    $m= new \Mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;root&#39;);
    
    ?>

    b. Sie können auch mehrere Leerzeichen gleichzeitig benennen
  • rrreee , die erste Die Definition jedes Leerzeichens muss in Zeile 1 platziert werden. Es gibt jedoch zu allem Ausnahmen, und der einzige zulässige Code vor der Deklaration eines Namespace ist die Anweisung declare, die die Kodierung der Quelldatei definiert. Jeglicher Nicht-PHP-Code, einschließlich Leerzeichen, darf nicht vor einer Namespace-Deklaration stehen. Der folgende Code meldet beispielsweise einen Fehler. rrreee3. Namespace-Zugriff

Der Namespace-Zugriff ist unterteilt in: unqualifizierter Space-Zugriff, qualifizierter Space-Zugriff, vollständig qualifizierter Space-Zugriff Code>. <strong></strong> a. Uneingeschränkter Raumzugang

rrreee b. Eingeschränkter Raumzugangrrreee

4. Wir stellen vor: a. use Space name Space name [as alias]: Fügt den angegebenen Space in den aktuellen Space ein. Sie können auch das Schlüsselwort as verwenden, um dem eingeführten Leerzeichen einen Alias ​​zu geben
b.use Space name Space name member class [as alias]: Ändern Sie das angegebene Space-Mitglieder werden in den aktuellen Space eingeführt, und Space-Mitglieder können nur in Klassen eingeführt werden Beschränkt auf Innerhalb des Bereichs verfügt das System bei Verwendung des unqualifizierten Bereichszugriffs über die folgende Parsing-Logik (qualifizierte Namen oder vollständig qualifizierte Namen werden direkt entsprechend dem Pfad gesucht)

🎜🎜🎜🎜🎜Erste Suche in Ihrem eigenen Bereich🎜🎜 🎜🎜🎜🎜🎜🎜 Zweitens, wenn das Element nicht gefunden werden kann, sind die Verarbeitungsmethoden verschiedener Raumelemente unterschiedlich. 🎜🎜🎜🎜🎜🎜🎜🎜 Systemkonstanten und Systemfunktionen werden im globalen Raum gefunden, wenn sie nicht gefunden werden. 🎜 🎜🎜🎜🎜🎜 Systemklassen gehen nicht automatisch zum globalen Bereich, um ihn zu finden (Fehlerbericht, Meldung, dass der Bereich nicht gefunden werden kann) 🎜🎜🎜rrreee🎜🎜 🎜 Empfohlen: 🎜php-Tutorial🎜🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonUnendliche Nistpuppen, der Namenspfad des Namensraums. 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