PHP 類自動載入機制

weixin_33850890發表於2016-06-14

版本

PHP5.1.2 之前使用 __autoload() 。
PHP5.1.2 之後使用 spl_autoload_register() 。
本文以 spl_autoload_register() 進行演示 。

包含目錄

  • application/controllers
  • application/models
  • application/libs

程式碼實現

//包含目錄
$include_dir = [
  'application/controllers',
  'application/models',
  'application/libs'
]
//設定包含目錄
set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $include_dir));
/**
 * 自動載入類庫
 * @param string $class 類名
 */
function auto_load_class($class = '')
{
    //在這可以進行擴充套件,預設是將類名轉成小寫。
    //可擴充套件方向:資料夾_類名 
    $path = strtolower($class) . '.class.php';
    include_once($path);
}
spl_autoload_register('auto_load_class'); //spl註冊自動載入
$obj = new 類名(); //例項化
$obj->方法名();
//當指定了多個目錄且有相同名稱的檔案時,以排位居前目錄下的為準。

Thanks ~

相關文章