2013-07-10 7 views
0

мне нужно создать новый объект, класс с именем, например, «статистики1» - «1» я в переменной, так что мне нужно что-то вроде этого:переменной во имя класса

$table = new Statistics${$mode}; 

Это не работает. Для переменных по переменным я использую:

$var = ${"text" . $second_var}; 

Но на этот раз это не переменная.

ответ

3

Имя класса может быть переменной since PHP5.3

Изменено: Теперь можно ссылаться на класс, используя переменную (например, echo $ classname :: constant;). Значение переменной не может быть ключевым словом (например, self, parent или static).

Так что пример кода может выглядеть следующим образом.

class foo1 
    {} 

$one = 1; 
$class_name = 'foo' . $one; 
$bar = new $class_name; 
var_dump($bar); 
+0

Без сомнения - это большое упрощение. Благодарю. :) – MuchaZ

3

Я предпочитаю отражение, потому что легче ловить исключения:

$reflector = new ReflectionClass('Statistics'.$mode); 
$table = $reflector->newInstance($arg1, $arg2); 
+0

Спасибо, отлично работает для меня. :) – MuchaZ