Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2007, 08h38   #1
Futur Membre du Club
 
Inscription : février 2003
Messages : 89
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 89
Points : 15
Points : 15
Par défaut [POO] Instace de classe et paramètres

Bonjour à tous

J'ai besoin de créer une classe, avec un new MaClasse, dont je ne connais pas le nom. Je peux donc très bien faire $monObjet = new $maClasse (), avec par exemple $maClasse = 'myClass', définie plus haut. ceci ne pose pas de soucis.

maintenant, si dans le __construct de myClass, j'ai des paramètres, je fais comme ça : $monObjet = $maClasse ('param1', 'param2');

mon problème, c'est que je veux créer une fonction qui permettrait d'instancier n'importe quelle classe, avec des paramètres. ma fonction ressemblerait à ça :

Code :
1
2
3
function _class ($name, $params) {
  return new $name ();
}
là, je bloque sur le passage de paramètres à new $name () ... comment je peux faire passer un nombre X de paramètres ? je cherche exactement la même chose que call_user_func_array mais pour les objets, et je ne trouve pas
Sephiroth Lune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2007, 08h46   #2
Futur Membre du Club
 
Inscription : février 2003
Messages : 89
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 89
Points : 15
Points : 15
ok j'ai trouvé, c'est ce code :

Code :
1
2
$reflectionObj = new ReflectionClass ($pClassId); 
		return $reflectionObj->newInstanceArgs ($pArgs);
Sephiroth Lune est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h21.


 
 
 
 
Partenaires

Hébergement Web