2011-04-26 48 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()'多一點的過程來找出類文件的真實路徑(我的類與它們的文件名具有相同的名稱) 。 希望它有幫助。

相關問題