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";
}
?>