我不知道为什么这个代码会引发错误,请帮忙吗?
foreach ($config['commands'] as $commandName => $args) {
$reflector = new ReflectionClass($commandName);
$command = $reflector->newInstanceArgs($args);
$bot->addCommand($command);
}
错误:
致命错误:未捕获的异常' ReflectionException' with message' Class Command \ Resolve没有构造函数,所以你不能传递任何构造函数参数'
答案 0 :(得分:2)
我认为错误信息非常清楚。 The documentation也说基本相同:
[引发]
ReflectionException
如果类没有构造函数且args
参数包含一个或多个参数。
您尝试实例化的课程没有构造函数,但您尝试将其实例化,就好像它有一个并且正在传递它一样参数。不应传递$args
,或者它应该是一个空数组。您需要使$args
适合构造函数,目前它们不匹配。
namespace Command;
class Resolve {
// Look ma, NO CONSTRUCTOR!
}
$reflector = new \ReflectionClass('Command\Resolve');
$command = $reflector->newInstanceArgs(['foo', 'bar', 'baz']);
// doesn't match the non-existent constructor ^^^^^^^^