Reputation:
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
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
Reputation: 162851
Yes. You can dynamically instantiate classes in PHP. Like this:
$className = 'SomeClass';
$myInstance = new $className();
Upvotes: 4