<?php
namespace A;
use B\D, C\E as F;
// appels de fonctions
foo(); // tente d'appeler la fonction "foo" dans l'espace de noms "A"
// puis appelle la fonction globale "foo"
\foo(); // appelle la fonction "foo" définie dans l'espace global
my\foo(); // appelle la fonction "foo" définie dans l'espace de noms "A\my"
F(); // tente d'appeler la fonction "F" définie dans l'espace "A"
// puis tente d'appeler la fonction globale "F"
// référence de classes references
new B(); // crée un objet de la classe "B" définie dans l'espace de noms "A"
// si non trouvé, il essaie l'autoload sur la classe "A\B"
new D(); // using import rules, crée un objet de la classe "D" définie dans l'espace de noms "B"
// si non trouvé, il essaie l'autoload sur la classe "B\D"
new F(); // using import rules, crée un objet de la classe "E" définie dans l'espace de noms "C"
// si non trouvé, il essaie l'autoload sur la classe "C\E"
new \B(); // crée un objet de la classe "B" defined in global scope
// si non trouvé, il essaie l'autoload sur la classe "B"
new \D(); // crée un objet de la classe "D" defined in global scope
// si non trouvé, il essaie l'autoload sur la classe "D"
new \F(); // crée un objet de la classe "F" defined in global scope
// si non trouvé, il essaie l'autoload sur la classe "F"
// méthodes statiques et fonctions d'espace de noms d'un autre espace
B\foo(); // appelle la fonction "foo" de l'espace de noms "A\B"
B::foo(); // appelle la méthode "foo" de la classe "B" définie dans l'espace de noms "A"
// si la classe "A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\B"
D::foo(); // using import rules, appelle la méthode "foo" de la classe "D" définie dans l'espace de noms "B"
// si la classe "B\D" n'est pas trouvée, il essaie l'autoload sur la classe "B\D"
\B\foo(); // appelle la fonction "foo" de l'espace de noms "B"
\B::foo(); // appelle la méthode "foo" de la classe "B" from global scope
// si la classe "B" n'est pas trouvée, il essaie l'autoload sur la classe "B"
// méthodes statiques et fonctions d'espace de noms de l'espace courant
A\B::foo(); // appelle la méthode "foo" de la classe "B" de l'espace de noms "A\A"
// si la classe "A\A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\A\B"
\A\B::foo(); // appelle la méthode "foo" de la classe "B" de l'espace de noms "A\B"
// si la classe "A\B" n'est pas trouvée, il essaie l'autoload sur la classe "A\B"
?>