class_exists返回true但仍然得到Class not found错误

时间:2011-04-26 20:38:35

标签: php

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');
}

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

任何人都可以解释原因吗?这是PHP中的错误吗?

4 个答案:

答案 0 :(得分:0)

我遇到了同样的错误。在我的情况下,问题是由于类名中混合的俄语和英语字母看起来相似。

答案 1 :(得分:0)

我有一个在较新版本的PHP(5.3.10)下运行的遗留代码。我有一些require_once()语句没有完成他们的工作。正如我可以改变的那样,我将它们改为include()并再次起作用。

我想这与PHP版本有关,因为在以前的版本下运行该网站是可以的。

答案 2 :(得分:0)

当我需要一个我正在运行的phpunit类不需要的文件时,发生了这种情况。文件在那里,但我收到了错误。

然而,对于 的测试需要该类,同样包含调用有效。

我的工作是拥有2个配置文件,其中1个需要该类文件而第2个文件不需要。所以当不需要时,我使用后者。

有点笨重,有一个额外的小文件(我不应该创建.. cse' la vie),但是在这里解除阻塞问题

答案 3 :(得分:0)

花了几个小时练习这个错误的致命错误......我承认这个功能不能用于SPL自动加载!我终于找到了一个解决方案: 我用'file_exists()'替换'class_exists()'和更多的进程来找出类文件的真实路径(我的类与它们的文件名同名)。 希望它有所帮助。