我遇到了一个非常有趣的问题。我有两个班级:APISession
和ApiSession
。我也有一个API类,它有一个方法,如下所示:
public static function request($category, $name, $params) {
$params["Response"] = new APIResponse();
$class = new ReflectionClass("API".$category);
return $class->getMethod($name)->invoke(null, $params);
}
我正在调用方法:
$result = API::request("Session", "Check", array());
当然,我希望这会执行Check
类的APISession
方法,但是,我收到以下问题:
致命错误:未捕获的异常' PHPErrorException'与消息 '异常' ReflectionException'有消息'方法检查没有 存在'
我检查了问题的根源,这是因为request
到达ApiSession
而不是APISession
,尽管传递给它的字符串是"APISession"
。我的问题是:是否可以告诉ReflectionClass
构造函数区分大小写?
答案 0 :(得分:2)
类名在PHP中不区分大小写,可以通过在命令行上执行此操作来演示:
php -r 'class APISession { } class ApiSession { }'