J'obtiens une erreur d'analyse lorsque j'essaie d'utiliser un espace de nom dans ma propre fonction
require('/var/load.php');
function go(){
use test\Class;
$go = 'ok';
return $go;
}
echo go();
De règles de portée pour l'importation
Le mot-clé use doit être déclaré dans la portée la plus externe d'un fichier (la portée globale) ou dans les déclarations d'espace de noms. Cela est dû au fait que l'importation est effectuée au moment de la compilation et non à l'exécution, donc elle ne peut pas être étendue au bloc
Donc, vous devriez mettre comme ça, l'utilisation doit être spécifiée au niveau global
require('/var/load.php');
use test\Class;
function go(){
$go = 'ok';
return $go;
}
echo go();
Vérifiez l'exemple 5 dans le manuel ci-dessous Veuillez vous référer à son manuel à http://php.net/manual/en/language.namespaces.importing.php
De le manuel :
Le mot clé
use
doit être déclaré dans la portée la plus externe d'un fichier (la portée globale) ou dans les déclarations d'espace de noms.