- 论坛徽章:
- 0
|
- public function createInstance($class, array $args = null) {
- if (empty($args)) {
- return new $class;
- }
- $refClass = new ReflectionClass($class);
- if (isset($args) && !isset($args[0])) {
- $args2 = array();
- foreach ($refClass->getMethod('__construct')->getParameters() as $param) {
- if (isset($args[$param->name])) {
- $args2[] = $args[$param->name];
- } elseif ($param->isDefaultValueAvailable()) {
- $args2[] = $param->getDefaultValue();
- }
- }
- $args = $args2;
- }
- return $refClass->newInstanceArgs((array)$args);
- }
复制代码 |
|