Php 类_exists返回true,但仍然获取未找到的类错误
这些代码块中的任何一个都会抛出以下错误:“PHP致命错误:找不到类'PhpThumb'”Php 类_exists返回true,但仍然获取未找到的类错误,php,Php,这些代码块中的任何一个都会抛出以下错误:“PHP致命错误:找不到类'PhpThumb'” 有人能解释为什么吗?这是PHP中的一个bug吗?我也遇到过同样的bug。在我的例子中,问题是由于类名中混合了俄语和英语字母,看起来很相似。我遇到了相同的错误。在我的例子中,问题是由于类名中混合了俄语和英语字母,这看起来很相似。我有一个旧代码,它运行在较新版本的PHP(5.3.10)下。我有一些require_once()语句没有发挥作用。正如我所能改变的,我改变了它们do include(),它又起作用了
有人能解释为什么吗?这是PHP中的一个bug吗?我也遇到过同样的bug。在我的例子中,问题是由于类名中混合了俄语和英语字母,看起来很相似。我遇到了相同的错误。在我的例子中,问题是由于类名中混合了俄语和英语字母,这看起来很相似。我有一个旧代码,它运行在较新版本的PHP(5.3.10)下。我有一些require_once()语句没有发挥作用。正如我所能改变的,我改变了它们do include(),它又起作用了
我想这与PHP版本有关,因为在以前的版本下运行该网站是可以的。我有一个遗留代码在更新版本的PHP(5.3.10)下运行。我有一些require_once()语句没有发挥作用。正如我所能改变的,我改变了它们do include(),它又起作用了
我想这与PHP版本有关,因为在以前的版本下运行该网站是可以的。当我需要一个我正在运行的phpunit类不需要的文件时,这种情况就发生了。文件在那里,但我弄错了 然而,对于一个确实需要该类的测试,同样的include调用也有效 我的工作是有2个配置文件,其中1个需要该类文件,第2个不需要。因此,当不需要时,我使用后者
一个额外的小文件(我不应该创建..cse'la vie)有点笨重,但是在这里解除了这个问题这发生在我需要一个我正在运行的phpunit类不需要的文件时。文件在那里,但我弄错了 然而,对于一个确实需要该类的测试,同样的include调用也有效 我的工作是有2个配置文件,其中1个需要该类文件,第2个不需要。因此,当不需要时,我使用后者
一个额外的小文件(我不应该创建..cse'la vie)有点笨重,但在花了几个小时练习这个错误致命错误后,解除了这里的问题。我承认这个函数不适用于SPL自动加载!我终于找到了一个解决方案: 我将“class_exists()”替换为“file_exists()”,再加上一点查找类文件实际路径的过程(我的类与它们的文件名同名)。
希望它能有所帮助。在花了几个小时练习这个错误的致命错误之后……我承认这个函数在SPL自动加载时不起作用!我终于找到了一个解决方案: 我将“class_exists()”替换为“file_exists()”,再加上一点查找类文件实际路径的过程(我的类与它们的文件名同名)。
希望有帮助。您有定制自动加载器吗?如果自动加载程序无法加载类而不抛出错误,则可能会产生此问题。这是在我以前使用过的第三方库中,从未见过此问题。我去看看有没有自动装弹机。但是,
get\u defined\u classes
在数组中也包含PhpThumb,所以我假设它不必经过自动加载器。@frank farmer Followup:我的意思是get\u声明的\u classes
类的存在不区分大小写,所以它是可能的,尽管不太可能,存在具有相同不区分大小写名称的不同类。有人建议在数组('PhpThumb',get_declared_classes())中使用。
@MasterAm我刚刚试过那段代码,它抛出了同样的错误。不过,我会修改这个问题来澄清。你们有定制的自动加载器吗?如果自动加载程序无法加载类而不抛出错误,则可能会产生此问题。这是在我以前使用过的第三方库中,从未见过此问题。我去看看有没有自动装弹机。但是,get\u defined\u classes
在数组中也包含PhpThumb,所以我假设它不必经过自动加载器。@frank farmer Followup:我的意思是get\u声明的\u classes
类的存在不区分大小写,所以它是可能的,尽管不太可能,存在具有相同不区分大小写名称的不同类。有人建议在数组('PhpThumb',get_declared_classes())中使用。
@MasterAm我刚刚试过那段代码,它抛出了同样的错误。不过,我会修改这个问题来澄清。
if (class_exists('PhpThumb')) {
$pt = PhpThumb::getInstance();
$pt->registerPlugin('GdReflectionLib', 'gd');
}
if (in_array('PhpThumb', get_declared_classes())) {
$pt = PhpThumb::getInstance();
$pt->registerPlugin('GdReflectionLib', 'gd');
}