<?php
namespace A;
use B\D, C\E as F;
// Funktionsaufrufe
foo(); // versucht zuerst die Funktion "foo" im Namespace "A" aufzurufen
// danach wird die globale Funktion "foo" aufgerufen
\foo(); // ruft die Funktion "foo" im globalen Namensraum auf
my\foo(); // ruft die Funktion "foo" im Namespace "A\my" auf
F(); // versucht zuerst die Funktion "F" im Namespace "A" aufzurufen,
// danach wird die globale Funktion "F" aufgerufen
// Klassenreferenzen
new B(); // erzeugt ein Objekt der Klasse "B" im Namespace "A"
// wenn diese Klasse nicht bekannt ist, so wird versucht per
// Autoload die Klasse "A\B" zu laden
new D(); // gemäß den Importregeln wird ein Objekt der Klasse "D"
// aus dem Namenspace "B" erzeugt
// wenn diese Klasse nicht bekannt ist, so wird versucht per
// Autoload die Klasse "B\D" zu laden
new F(); // gemäß den Importregeln wird ein Objekt der Klasse "E"
// aus dem Namespace "C" erzeugt
// wenn diese Klasse nicht bekannt ist, so wird versucht per
// Autoload die Klasse "C\E" zu laden
new \B(); // erzeugt ein Objekt der Klasse "B" aus dem globalen Namensraum
// wenn diese Klasse nicht bekannt ist, so wird versucht per
// Autoload die Klasse "B" zu laden
new \D(); // erzeugt ein Objekt der Klasse "D" aus dem globalen Namensraum
// wenn diese Klasse nicht bekannt ist, so wird versucht per
// Autoload die Klasse "D" zu laden
new \F(); // erzeugt ein Objekt der Klasse "F" aus dem globalen Namensraum
// wenn diese Klasse nicht bekannt ist, so wird versucht per
// Autoload die Klasse "F" zu laden
// statische Methoden und Funktionen mit Namespace aus anderen Namespaces
B\foo(); // ruft die Funktion "foo" aus dem Namensraum "A\B" auf
B::foo(); // ruft die Methode "foo" der Klasse "B" im Namensraum "A" auf
// wenn die Klasse "A\B" nicht bekannt ist, so wird versucht
// die Klasse "A\B" mittels Autoload zu laden
D::foo(); // ruft gemäß den Importregeln die Methode "foo" der Klasse "D"
// im Namensraum "B" auf
// wenn die Klasse "B\D" nicht bekannt ist, so wird versucht
// die Klasse "B\D" mittels Autoload zu laden
\B\foo(); // ruft die Funktion "foo" im Namespace "B" auf
\B::foo(); // ruft die Methode "foo" der Klasse "B" im
// globalen Namensraum auf
// wenn die Klasse "B" nicht bekannt ist, so wird versucht
// die Klasse "B" mittels Autoload zu laden
// statische Methoden und Funktionen mit Namespace aus den gleichen Namespaces
A\B::foo(); // ruft die Methode "foo" der Klasse "B" aus dem Namespace "A\A" auf
// wenn die Klasse "A\A\B" nicht bekannt ist, so wird
// versucht die Klasse "A\A\B" mittels Autoload zu laden
\A\B::foo(); // ruft die Methode "foo" der Klasse "B" aus dem Namespace "A" auf
// wenn die Klasse "A\B" nicht bekannt ist, so wird
// versucht die Klasse "A\B" mittels Autoload zu laden
?>