2014-03-03 37 views
1

我看到的答案類似的問題,但他們沒有工作對我來說 這是我實現的功能:如何防止spl_autoload_register加載本地PHP類

spl_autoload_register(function($class){ 
     require_once 'classes/'. $class .'.php'; 
}); 

所以當我說

$user = new User(); 

它工作正常,因爲我有一個User.php文件裏面的類文件夾類的defenition ,但是當我使用本地PHP類如

$date = new Date(); 

我得到以下錯誤:

致命錯誤:require_once()[function.require]:失敗開口所需 '類/ Date.php'

我試圖在try塊surrouding放在require_once但它確實工作,我仍然得到相同的錯誤

任何想法?

+0

也許這個主題可以幫到您嗎? http://stackoverflow.com/questions/9539422/strange-php-autoload-issue –

+0

謝謝,爲每個類名添加一個主要的反斜槓?這似乎不正確嗎?我以前從未在專業代碼中見過它,這是唯一的方法嗎?我的意思是必須有一些PHP人員爲我失蹤的這個問題做了些什麼 – Jack

回答

1

您可以使用file_exists來檢查您的classes目錄中是否有名爲$class的類。如果沒有,你不需要它。

如果它是一個PHP本地類,它將工作,否則它會給你一個錯誤。

spl_autoload_register(function($class){ 
    if (file_exists('classes/'. $class .'.php')) 
     require_once 'classes/'. $class .'.php'; 
});