Je suis en train de faire une classe à partir d'une variable membre comme ceci:syntaxe PHP: la construction d'une classe à partir d'une variable membre
<?
class A{
private $to_construct = 'B';
function make_class(){
// code to make class goes here
}
}
class B{
function __construct(){
echo 'class constructed';
}
}
$myA = new A();
$myA->make_class();
?>
J'ai essayé d'utiliser:
$myClass = new $this->to_construct();
et
$myClass = new {$this->to_construct}();
mais aucun n'a fonctionné. J'ai fini par avoir à faire:
$constructor = $this->to_construct;
$myClass = new $constructor();
Il semble qu'il devrait y avoir un moyen de le faire sans enregistrer le nom de classe dans une variable locale. Est-ce que je manque quelque chose?
Merci, je pensais que je devais mettre la parenthèse pour montrer qu'il était une fonction. Y at-il toujours un moyen de le faire sans avoir à stocker le nom de la classe locale si vous avez besoin de passer des paramètres au constructeur? – Craig
Ce n'est pas une fonction, cependant. Je ne suis pas sûr de savoir comment vous feriez ce dont vous avez besoin en PHP, soit. – jkeys