2010-06-24 6 views
36

Est-il possible d'instancier dynamiquement une classe à l'aide d'une variable? Par exemple, quelque chose comme ceci est-il possible en PHP?En PHP 5 puis-je instancier une classe dynamiquement?

class foo 
{ 
    public $something; 
} 

$class_name = "foo"; 

$f = new $class_name(); 
+27

Je ne suis pas d'accord que ce n'est pas une vraie question. D'abord grammaticalement une vraie question, ensuite une réponse définitive avec possibilité d'élaboration, troisièmement il est facile de dire ce qui est demandé, ce qui est démontré par le fait que toutes les réponses sont essentiellement les mêmes. S'il est vrai que ceci, ma première question sur SO, était un peu une erreur, encore à ceux qui ne sont pas en mesure de deviner au hasard la syntaxe correcte sur leur premier essai bénéficieront d'un message clair et interrogeable sur le sujet. –

Répondre

37

Cela devrait fonctionner, oui.

Vous pouvez également faire:

$f = new $class($arg1,$arg2); 
10

Oui, ce code fonctionnera correctement.

4

En PHP 5 puis-je instancier une classe dynamique?

Oui vous pouvez, votre code devrait fonctionner correctement.

2

Oui, bien sûr, vous pouvez instancier en utilisant des noms dynamiques;