Utilisation des espaces de noms : retour � l'espace global
Dans un espace de noms, lorsque PHP rencontre un nom sans qualification, que ce soit une classe, une fonction ou une constante, il le r�sout avec diff�rentes priorit�s. Les noms de classes sont toujours r�solus avec l'espace de noms courant. Pour acc�der � des classes internes ou � des classes qui ne sont pas dans un espace de noms, il faut les repr�senter avec leur nom absolu, tel que :
Exemple #1 Acc�s aux classes globales depuis un espace de noms
<?php
namespace A\B\C;
class Exception extends \Exception {}
$a = new Exception('hi'); // $a est un objet de la classe A\B\C\Exception
$b = new \Exception('hi'); // $b est un objet de la classe Exception
$c = new ArrayObject; // erreur fatale, classe A\B\C\ArrayObject non trouv�e
?>
Pour les fonctions et constantes, PHP va aller les chercher dans l'espace global s'il ne peut les trouver dans l'espace de noms courant.
Exemple #2 Acc�s aux fonctions et constantes globales dans un espace de noms
<?php
namespace A\B\C;
const E_ERROR = 45;
function strlen($str)
{
return \strlen($str) - 1;
}
echo E_ERROR, "\n"; // affiche "45"
echo INI_ALL, "\n"; // affiche "7" : acc�s dans l'espace de noms global INI_ALL
echo strlen('hi'), "\n"; // affiche "1"
if (is_array('hi')) { // affiche "n'est pas un tableau"
echo "est un tableau\n";
} else {
echo "n'est pas un tableau\n";
}
?>