Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 类_exists返回true,但仍然获取未找到的类错误_Php - Fatal编程技术网

Php 类_exists返回true,但仍然获取未找到的类错误

Php 类_exists返回true,但仍然获取未找到的类错误,php,Php,这些代码块中的任何一个都会抛出以下错误:“PHP致命错误:找不到类'PhpThumb'” 有人能解释为什么吗?这是PHP中的一个bug吗?我也遇到过同样的bug。在我的例子中,问题是由于类名中混合了俄语和英语字母,看起来很相似。我遇到了相同的错误。在我的例子中,问题是由于类名中混合了俄语和英语字母,这看起来很相似。我有一个旧代码,它运行在较新版本的PHP(5.3.10)下。我有一些require_once()语句没有发挥作用。正如我所能改变的,我改变了它们do include(),它又起作用了

这些代码块中的任何一个都会抛出以下错误:“PHP致命错误:找不到类'PhpThumb'”


有人能解释为什么吗?这是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');
}