I have a question regarding “dynamic” class initialising, let me explain what I mean:
$class = 'User';
$user = new $class();
//...is the same as doing
$user = new User();
So… that’s not the problem, but I am having some trouble doing the same while calling a static variable from a class, for example:
$class = 'User';
print $class::$name;
Which gives out the following error:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in
Off course I have tested doing print User::$name; and that works. So class works.
Why is this and is there a way around it?
Follow up question:
Also is there any valid reasons to not use this “dynamic” way in creating classes?
If you don’t have PHP version of 5.3 and above, and you don’t want to use reflection (which in my opinion is an overkill – unless you want to access multiple static properties) you can define getter function and call it via call_user_func():