Instanciation d'une classe dans le scope global à partir dun namespace - PHP - Programmation
Marsh Posté le 20-01-2010 à 10:03:06
hello
sans namespace
Code :
|
avec namespace
Code :
|
Chaque function definie sous le namespace en fait partie
Marsh Posté le 20-01-2010 à 12:49:43
Merci pour ta réponse.
Si tu relis bien mon message j'ai déjà trouvé ça par moi-même et j'ai déjà supprimé l'alerte. Cependant l'instanciation de la classe "ErrorException" (qui est instanciée depuis la fonction en question), est appelée comme ci elle était déclarée dans le namespace "Example" et non pas comme ci elle était déclarée dans le scope global (c'est une classe fournie par PHP qui est donc forcément dans le scope global: http://us3.php.net/manual/en/class.errorexception.php )
Donc ma question est la suivante: Comment, depuis un namespace donné, créer une instance d'une classe n'étant pas déclaré dans ce même namespace mais dans le scope global (sans aucun namespace donc).
Tu vois ce que je veux dire ?
Par exemple:
Fichier1.php
Code :
|
Fichier2.php
Code :
|
au lieu d'avoir "ok ça marche" j'ai l'erreur suivante:
Code :
|
comment faire ?
merci beaucoup pour ton aide
Marsh Posté le 20-01-2010 à 13:16:55
Code :
|
ou
Code :
|
Marsh Posté le 20-01-2010 à 13:35:19
enfaite ca marche un peu comme le java ou as3 ducoup
tu déclares ton package, et tu fais tes import de class
Code :
|
Code :
|
Marsh Posté le 25-01-2010 à 09:26:31
Okay merci beaucoup j'ai résolu mon problème.
La solution comme tu l'as indiquée est de simplement ajouter un backslash devant la fonction ou classe ou constante que l'on veut utiliser ou initier et qui se trouve dans le scope global et non pas dans un namespace spécifique.
Voici le code de mon premier message qui fonctionne désormais:
Code :
|
Marsh Posté le 25-01-2010 à 13:07:02
je te conseil plutot d'utiliser d'utlise le mot clef "use"
Code :
|
Marsh Posté le 20-01-2010 à 01:26:26
Hi all,
Le code suivant:
génère l'erreur suivante:
Warning: set_error_handler() expects the argument (exception_error_handler) to be a valid callback in [...]
j'essaie d'apprendre la nouvelle gestion des espaces de nom dans PHP 5.3 et je comprends pas quel est le problème ici.
Maintenant si je rajoute le namespace comme ça:
j'ai plus le warning, mais du coup j'ai un problème lorsqu'une exception est interceptées, puisqu'il essaie de charger la classe ErrorException depuis le namespace "Example" plutôt que depuis le scope global:
or cette classe n'est pas définie dans le namespace "Example" mais dans le scope global...
merci par avance pour votre aide