Petit souci pour instancier une classe

Petit souci pour instancier une classe - PHP - Programmation

Marsh Posté le 28-06-2006 à 13:54:31    

Bonjour à tous
 
Voila, j'ai un problème un peu louche au niveau de mon code PHP:

Code :
  1. include("../formulaires/".$_GET['page'].".php" );
  2. $class = $_GET['page']."()";
  3. $form = new $class;
  4. $form->afficherForm();


 
avec $_GET['page'] valant AjoutSalarie .
 
Ceci me renvoie:

Citation :

Fatal error: Cannot instantiate non-existent class: ajoutsalarie() in /home/biblio/public_html/applis/AppliRH/menus/ServiceRH.php on line 29


 
Alors que si je fait:

Code :
  1. include("../formulaires/AjoutSalarie.php" );
  2. $form = new AjoutSalarie();
  3. $form->afficherForm();


 
Ca marche nickel...
Des idées? Merci !


Message édité par GroXx le 28-06-2006 à 13:55:39
Reply

Marsh Posté le 28-06-2006 à 13:54:31   

Reply

Marsh Posté le 28-06-2006 à 14:02:36    

j ai eu le meme probleme une fois avec ce genre de concaténations
je sais pas comment resoudre
 
j ai du contourner le probleme
 
deja tu devrais pas mettre tes get dans des include sans les tester c est suicidaire
puis apres tu crees un array avec tes choix possible  
genre array("ajoutsalarie" => "ajoutsalarié()" )
et tu remplaces
c est comme ca que j ai fait mais il y a surement plus elegant

Reply

Marsh Posté le 28-06-2006 à 14:21:26    

Salut,
 
T'inquiète pour le test, je le fait, c'est juste que j'ai seulement mis la partie du code qui pose problème. ;)
 
Ce qui est bizzard, c'est qu'en débuggant avec des echo, j'ai bien ce quil faut au nivau de la concaténation. De toute manière, à ce stade de développement, je met encore le truc à la main pour tester donc c'est pas encore trop pressant, mais au pire, ouais j'utiliserai ta soluce.

Reply

Marsh Posté le 28-06-2006 à 14:24:13    

ajoutsalarie() !== AjoutSalarie()
 
J'ai deja utilisé ce genre de "bidouille" d'instantiation d'un classe de maniere dynamique ... Pour le moment chaque fois c'etait le signe d'une mauvaise conceptualisation du problème...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 28-06-2006 à 14:29:39    

esox_ch a écrit :

 

ajoutsalarie() !== AjoutSalarie()

 

ajoutsalarie() != AjoutSalarie()  
c est le meme type [:aloy]


Message édité par mIRROR le 28-06-2006 à 14:31:25
Reply

Marsh Posté le 28-06-2006 à 14:35:55    

ah oué donc en fait, les majuscules seraient "mangées" par le passage par l'url... :(
Dans ce cas autant faire un gros switch / case quoi...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed