I tried the code below:
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
$obj = eval($dyn);
It compiles but it's null.
How can you instance object in PHP dynamicaly?
$class = 'ClassName';
$obj = new $class($arg1, $arg2);
class From { static $toCreate='ClassName';}new From::$toCreate() should still work... If not then you would just assign it to var before instantiation.class From { static $toCreate='ClassName'; public static function some(){};}. We need to call static method some, and it should have syntax like Form::$toCreate::some(). Ofcourse, it wouldnt work. But we can like $dynName=Form::$toCreate; $dynName::some() and it will work. But this is not much perfect (If you really want to use eval - which chances are you shouldn't if you're this new to PHP ;) - you'd do something more like...
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
eval("\$obj = $dyn");
What are you actually trying to accomplish? eval would work, but its probably not a very good idea.
What you might want to do is implement a factory for your objects that take a string defining what class to load, and an optional array for the constructors parameters