2009-11-23 7 views
2

Cela pourrait être une question stupide: P Mais j'ai trouvé ce interessting vraiment:instancier une nouvelle classe à la valeur d'une chaîne

 
class SomeClass{ 

var $var = "this is some text"; 

function echoVar($name){ 
    echo $this->{$name}; 
} 
} 
$class = new SomeClass() 
$class->echoVar("var") // will echo "this is some text" 

Puis-je faire somethign similaire, puis-je prendre la valeur d'une chaîne et instancier une nouvelle classe avec ce nom? Si non, des solutions "presque"?

Merci

Répondre

5

Oui. Vous pouvez instancier dynamiquement des classes en PHP. Comme ceci:

$className = 'SomeClass'; 
$myInstance = new $className(); 
1

Si votre chaîne 'dave' est le nom de $, vous pouvez l'utiliser avec $$ nom

$name = 'dave'; 
$$name = new SomeClass(); 
$dave->echoVar('var'); 
Questions connexes