Различия в этих трех способах создания объекта динамически? - PullRequest
0 голосов
/ 17 февраля 2012

Из любопытства, в чем разница (если она есть, например, производительность) создания экземпляров в PHP одним из следующих способов?

class MyClass { }

// Direct
$name     = 'MyClass';
$instance = new $name;

// Using ReflectionClass
$reflector = new ReflectionClass('MyClass');
$instance  = $reflector->newInstance();

// Really don't know if it's going to work
$instance = call_user_func(array('MyClass', '__construct'));

1 Ответ

0 голосов
/ 17 февраля 2012

Direct - это «нормальный путь»

Использование ReflectionClass - это то, что вы бы сделали, если бы ваша программа должна была определять классы и т. Д. На лету - в большинстве случаев это не нужно делать.Как правило, он будет немного более требовательным к ресурсам и медленнее (возможно, не заметно)

Не уверен насчет третьего - относится к принципу KISS - Так как «Direct» работает, я никогда не сталкивался с таким извращениемситуация, чтобы даже придумать этот третий подход.

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