[英]PHP spl_autoload_register inheritance
我有一個名為house.php的頁面,以及house.class.php中的一個類。 當我在house.php中創建該類的實例時,它將起作用。 現在,我要制作一個chair.php文件和一個在House.class.php中擴展House的類Chair。 我該在哪里上課? spl_autoload_register找不到我的課程,因為其名稱與文件不相同。 如何改善AutoloadClass功能? 我應該創建一個chair.class.php並在house.class.php中使用require嗎?
spl_autoload_register(null, false);
spl_autoload_extensions('.php, .class.php');
function AutoloadClass($class){
$filename = $class.'.class.php';
if (!file_exists($filename))
{
return false;
}
include $filename;
}
spl_autoload_register('AutoloadClass');
謝謝
由於您正在調用spl_autoload_extensions
,因此無需手動添加.class.php
。 此外,您可以嘗試spl_autoload_register
帶任何參數調用spl_autoload_register
。 然后,它可以與http://de2.php.net/manual/zh-CN/function.spl-autoload.php一起使用 ,它應該可以立即使用:
set_include_path(__DIR__);
spl_autoload_extensions('.php,.class.php');
spl_autoload_register();
spl_autoload
將進行擴展檢查。 否則,您不需要spl_autoload_extensions
而必須自己檢查所有擴展名。
您可能面臨的另一個問題是您的類名是大寫而文件名是小寫。 我會使用PSR-0標准,以便類名和文件名匹配。 因此,請勿添加.class.php
。
House -> House.php
Chair -> Chair.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.