2011-04-26 44 views
2
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’未找到”class_exists返回true,但仍收到未找到错误

任何人都可以解释,为什么?这是PHP中的错误吗?

+1

你有自定义自动加载器吗?如果自动加载器无法在不抛出错误的情况下加载类,则可能会产生这种情况。 – 2011-04-26 20:41:28

+0

这是我之前使用过的第三方库,从未见过这个问题。我会看看是否有自动加载器。但是,'get_defined_classes'还包含数组中的PhpThumb,所以我假设它不应该通过自动加载器。 – pnomolos 2011-04-26 20:48:05

+0

@ frank-farmer后续操作:我的意思是**'get_declared_classes' ** – pnomolos 2011-04-26 20:54:00

回答

0

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

0

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

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

0

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

然而,对于一个测试需要一个类,同样包括呼叫的作品。

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

有点麻烦与1个额外的小文件(说我不应该创建.. CSE” LA VIE),但疏导这里的问题

0

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

相关问题