Namespaces verwenden: Aliase/Importieren
  
  (PHP 5 >= 5.3.0, PHP 7, PHP 8)
  
   Die Möglichkeit, auf vollständig qualifizierte Namen mit einem Alias (Importieren)
   zuzugreifen, ist ein wichtiges Feature von Namespaces. Dies ist ähnlich wie
   die Möglichkeit von Unix-basierten Dateisystemen einen symbolischen Link auf eine
   Datei oder ein Verzeichnis anzulegen.
  
  
   PHP unterstützt das Vergeben von Aliasen (Importe) für Konstanten, Funktionen,
   Klassen, Interfaces, Traits, Aufzählungen (Enums) und Namespaces.
  
  
   Ein Alias wird mittels des use-Operators angelegt. Hier ein
   Beispiel, welches alle fünf Arten von Importen zeigt:
   
    Beispiel #1 Aliase/Importieren mit dem use-Operator
    
<?php
namespace foo;
use My\Full\Classname as Another;
// dies ist das gleiche wie use My\Full\NSname as NSname
use My\Full\NSname;
// importiert eine globale Klasse
use ArrayObject;
// Eine Funktion importieren
use function My\Full\functionName;
// Alias für eine Funktion
use function My\Full\functionName as func;
// Eine Konstante importieren
use const My\Full\CONSTANT;
$obj = new namespace\Another; // erzeugt ein Objekt der Klasse foo\Another
$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
NSname\subns\func(); // ruft die Funktion My\Full\NSname\subns\func auf
$a = new ArrayObject(array(1)); // erzeugt ein Objekt der Klasse ArrayObject
// ohne das "use ArrayObject" wäre ein Objekt der Klasse foo\ArrayObject erzeugt worden
func(); // ruft die Funktion My\Full\functionName auf
echo CONSTANT; // Gibt den Wert von My\Full\CONSTANT aus
?>
     
    
   Beachten Sie, dass für Namen von Namespaces (vollständig qualifizierte Namespacenamen
   mit einem Namensraumseparator, wie 
Foo\Bar, im Gegensatz zu
   globalen Namen ohne Separator, wie 
FooBar) der führende
   Backslash nicht notwendig und nicht empfohlen ist, weil importierte Namen vollständig
   qualifiziert sein müssen und nicht relativ zum aktuellen Namespace verarbeitet
   werden.
  
  
   PHP unterstützt zusätzlich auch eine komfortable Kurzsyntax, mit der mehrere
   use-Ausdrücke in der gleichen Zeile erscheinen können.
   
    Beispiel #2 Aliase/Importieren mit dem use-Operator, mehrere use-Ausdrücke kombiniert
    
<?php
use My\Full\Classname as Another, My\Full\NSname;
$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
NSname\subns\func(); // ruft die Funktion My\Full\NSname\subns\func auf
?>
     
    
  
  
   Importieren wird zur Kompilierungszeit ausgeführt und hat daher keinen Einfluss
   auf dynamische Klassen-, Funktions- oder Konstantennamen.
   
    Beispiel #3 Importieren und dynamische Namen
    
<?php
use My\Full\Classname as Another, My\Full\NSname;
$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
$a = 'Another';
$obj = new $a;      // erzeugt ein Objekt der Klasse Another
?>
     
    
  
  
   Zusätzlich beeinflusst das Importieren nur unqualifizierte und qualifizierte
   Namen. Vollständig qualifizierte Namen sind absolut und werden von Importen
   nicht beeinflusst.
   
    Beispiel #4 Importieren und vollständig qualifizierte Namen
    
<?php
use My\Full\Classname as Another, My\Full\NSname;
$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
$obj = new \Another; // erzeugt ein Objekt der Klasse Another
$obj = new Another\thing; // erzeugt ein Objekt der Klasse My\Full\Classname\thing
$obj = new \Another\thing; // erzeugt ein Objekt der Klasse Another\thing
?>
     
    
  
  
   Gültigkeitsbereiche für Importe
   
    Das Schlüsselwort use muss im äußersten Gültigkeitsbereich
    (dem globalen Gültigkeitsbereich) oder innerhalb einer Namespace-Deklaration
    angegeben werden. Das ist darin begründet, dass Importe zur Kompilierungszeit
    und nicht zur Laufzeit durchgeführt werden und daher nicht in einem anderen
    Gültigkeitsbereich liegen dürfen. Das folgende Beispiel zeigt eine ungültige
    Verwendung des use-Schlüsselwortes:
   
   
    
     Beispiel #5 Ungültige Importregel
     
<?php
namespace Languages;
function toGreenlandic()
{
    use Languages\Danish;
    // ...
}
?>
      
     
   
   Hinweis: 
    
     Importregeln sind auf Dateibasis gültig, das heißt eine eingebundene Datei
     wird NICHT die Importregeln der einbindenden Datei erben.
    
   
   
  
   Gruppierte use Deklarationen
   
    Klassen, Funktionen und Konstanten, die aus dem
    gleichen Namespace importiert werden, in einer einzigen use
    Anweisung gruppiert werden.