2011-11-23 54 views
1

__autoload()函數(PHP)是否必須是獨立函數,還是可以在類中用作公共/保護/私有函數?PHP __autoload OOP中的函數

我聽說它必須是一個獨立的功能,不應該在課堂上使用。這是真的還是可以在課堂上使用?

在此先感謝!

回答

5

您可以使用SPL爲:

class MyAutoloader 
{ 
    public static function register() 
    { 
     spl_autoload_register(array(new self, 'autoload')); 
    } 

    public static function autoload($classname) 
    { 
     // auto load code 
    } 
} 
+0

我才接受了答案,所以我必須要耐心等待8分鐘接受你太:P – DarkMantis

+0

@DarkMantis謝謝:) – Robik

3

在某些隨機類中創建__autoload()會有什麼意義?

當您嘗試從尚未定義的類實例化對象時,會調用__autoload()(spl_register_autoload()優於__autoload())。

因此,它必須是全球可用的。 PHP不知道類XYZ包含您要調用的名爲__autoload()的函數。

你可以做的是創建一個類來處理自動加載,然後使用spl_autoload_register()函數讓你的類需要自動加載。

+0

「__autoload()當您嘗試從還沒有一個類實例化一個對象被調用已被定義「這就是要點。我的課程使用其他課程中的各種其他方法,因爲它是我的網站和FileMaker API之間的「接口」,使生活更輕鬆。所以我想要初始化任何可以使用的類。感謝您的意見。 – DarkMantis