Создать класс с именем класса - PullRequest
0 голосов
/ 10 сентября 2011

Я пытаюсь найти способ создать класс только с именем класса в PHP.

Например:

$class = "MyClass";

if(class_exists($class))
$unit = new $class($param1, $param2);
else
$unit = new Unit($param1, $param2);

Есть ли способ сделать это в PHP?Если возможно, я также хотел бы знать, возможно ли это на Java.

Ура!заранее спасибо.

Ответы [ 3 ]

1 голос
/ 10 сентября 2011

Я не знаю о PHP (не использовал его годами), но в Java вы можете сделать:

MyClass obj = (MyClass) Class.forName("MyClass").newInstance( );
0 голосов
/ 10 сентября 2011

Да, он должен нормально работать в PHP. Я бы написал так, чтобы избежать дублирования всех параметров в конструкторе (если они одинаковы, конечно):

$class = 'MyClass';
if (! class_exists($class)) {
    $class = 'Unit';
}
$unit = new $class($param1, $param2);
0 голосов
/ 10 сентября 2011

вы можете использовать двойные знаки $ в PHP, чтобы сделать переменную хорошо .. переменная.

т.е.

Примечание: вы, вероятно, не хотите называть свой класс "классом", поскольку это зарезервированное слово;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...