php自動載入類檔案如何使用?php自動載入基類檔案的具體實現方案(代碼)

來源:互聯網
上載者:User
php自動載入類檔案什麼時候來使用?有時候我們可能寫一些代碼不去使用php架構,而是自己寫一個架構或者包,這個時候可能就會涉及多個檔案。在這種情況下,如果只使用命名空間是不能載入其他需要的檔案的。所以我們就要使用php的 spl_autoload_register 來做php檔案自動載入。

涉及到基類的載入有一個小細節需要注意,具體方案如下。

解決方案

通過如下代碼可以自動載入需要的檔案,當php指令碼運行時找不到需要的檔案,就會自動調用 spl_autoload_register 方法。參數 $classname 可以自訂,其值一定是未找到的類的名字(如果調用的時候帶上了命名空間,那麼這個參數也會帶上命名空間)。

spl_autoload_register(function ($classname) {    $root = rtrim(dirname(__DIR__), '/') . '/';    $path = str_replace('\\', DIRECTORY_SEPARATOR, strtolower($classname));    require $root.'path/BaseService.php';    require $root.$path.'.php';});

其中 spl_autoload_register 方法的參數可以是個匿名函數,也可以是一個方法的名字(字串類型)

spl_autoload_register('yourFunction');function yourFunction($classname) {    $root = rtrim(dirname(__DIR__), '/') . '/';    $path = str_replace('\\', DIRECTORY_SEPARATOR, strtolower($classname));    require $root.'path/BaseService.php';    require $root.$path.'.php';});

需要注意的是,如果載入的類是繼承了另外的一個類,那麼需要將基類優先載入 ,然後再載入子類,不然會出現找不到檔案,類未定義的錯誤,即 要注意負載檔案的順序

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.