user89862
user89862

Reputation:

Instantiate a new class with the value of a string

This might be a very stupid question :P But I found this really interessting:

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"

Can I do somethign similar, can I take the value of a string and instantiate a new class with that name? If not, any "almost" solutions?

Thanks

Upvotes: 2

Views: 557

Answers (2)

Adam Hopkinson
Adam Hopkinson

Reputation: 28793

If your string 'dave' is in $name, you can use it with $$name

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

Upvotes: 1

Asaph
Asaph

Reputation: 162851

Yes. You can dynamically instantiate classes in PHP. Like this:

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

Upvotes: 4

Related Questions