2013-08-27 100 views
2

我使用的是自動加載了我的課程,如PHP spl_autoload做法:靜態功能

function my_autoloader($Class){ 
    // classes 
    include "class/Class_User.php"; 

    // helpers 
    include "helper/Url_Helper.php"; 

    } 

spl_autoload_register('my_autoloader'); 

全部是偉大的工作,但是我有一些問題。 Url_Helper的內容不是一個類,只是我在整個網站中使用的一個經典的php函數。 Url_Helper中的函數僅在我啓動一些(任何)類之後纔可訪問,如:$ User = new User();

之後,函數被加載。但是如果我從Url_Helper調用一個函數,並且根本不使用任何類,它就不會被加載。

你能解釋一下我在這裏發生了什麼?

回答

0

您已經調試過它。你說當你沒有加載類時,助手不會被加載;這是真的。如果你希望你的助手總是可用的,你應該將它們包含在自動加載函數之外。

+0

這意味着spl_autoload不應該包含經典的php函數?我的意思是 - 奇怪的是,如果我使用任何類,它們最終會被加載.. – Enn

+0

不是真的,這是一個自動加載器。無論何時你要求一個課程而且它還沒有,它都將使用自動加載器。所以你放在那裏的所有東西,只會在你第一次使用新課程時被稱爲。 –

+0

因此,基本上我需要(或應該?)做的是將自動加載之外的那些功能包括在內?我的意思是我喜歡自動加載功能的方式:) – Enn