__autoload()函數(PHP)是否必須是獨立函數,還是可以在類中用作公共/保護/私有函數?PHP __autoload OOP中的函數
我聽說它必須是一個獨立的功能,不應該在課堂上使用。這是真的還是可以在課堂上使用?
在此先感謝!
__autoload()函數(PHP)是否必須是獨立函數,還是可以在類中用作公共/保護/私有函數?PHP __autoload OOP中的函數
我聽說它必須是一個獨立的功能,不應該在課堂上使用。這是真的還是可以在課堂上使用?
在此先感謝!
您可以使用SPL爲:
class MyAutoloader
{
public static function register()
{
spl_autoload_register(array(new self, 'autoload'));
}
public static function autoload($classname)
{
// auto load code
}
}
見__autoload()
documentation,它說:
spl_autoload_register()
提供了自動加載類更靈活的選擇。出於這個原因,不鼓勵使用__autoload(),將來可能會被棄用或刪除。
如果您需要某些類的方法作爲自動加載機制的示例,請參閱this example。
在某些隨機類中創建__autoload()會有什麼意義?
當您嘗試從尚未定義的類實例化對象時,會調用__autoload()(spl_register_autoload()
優於__autoload()
)。
因此,它必須是全球可用的。 PHP不知道類XYZ
包含您要調用的名爲__autoload()
的函數。
你可以做的是創建一個類來處理自動加載,然後使用spl_autoload_register()
函數讓你的類需要自動加載。
「__autoload()當您嘗試從還沒有一個類實例化一個對象被調用已被定義「這就是要點。我的課程使用其他課程中的各種其他方法,因爲它是我的網站和FileMaker API之間的「接口」,使生活更輕鬆。所以我想要初始化任何可以使用的類。感謝您的意見。 – DarkMantis
我才接受了答案,所以我必須要耐心等待8分鐘接受你太:P – DarkMantis
@DarkMantis謝謝:) – Robik