class_exists返回true,但是仍然得到一个Class not found错误


class_exists returns true but still getting a Class not found error

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致命错误:Class 'PhpThumb' not found"

有谁能解释为什么吗?这是PHP中的一个bug吗?

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

我有一个遗留代码在新版本的PHP(5.3.10)下运行。我有一些require_once()语句没有完成它们的工作。因为我可以改变,我把它们改为include(),它又工作了。

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

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

然而,对于需要这个类的测试,同样的include调用可以工作。

我的工作是有2个配置文件,其中1需要类文件和第二个文件不。因此,当不需要时,我使用后者。

一个额外的小文件有点笨拙(我不应该创建…

在花了几个小时练习这个致命的错误之后…我已经承认,这个功能不工作与SPL自动加载!我终于找到了解决办法我将'class_exists()'替换为'file_exists()',并使用更多的过程来查找类文件的真实路径(我的类具有与其文件名相同的名称)。