自動載入主要是省去了乙個個類去 include 的繁瑣,在 new 時動態的去檢查並 include 相應的 class 檔案。
先上**:
//index.php
<?php
class
classautoloader
else
}public
static
function register($autoloader = '')
}classautoloader::register();
$obj = new
printit();
$obj->doprint();
?>
然後是類檔案:
//printit.class.php
<?php
class
printit
}?>
實驗結果:
$ php index.phptry to load printit via classautoloader::loader()
hello, it's printit!
上面的**中,我們在另外乙個檔案 printit.class.php 中定義的 printit 類。但是,我們並沒有在 index.php 中顯性的 include 這個庫檔案。然後,因為我們有註冊了自動載入方法,所以,我們在 new 這個類時,我們的自動載入方法就會按事先定義好的規則去找到類檔案,並 include 這個檔案。
這也是 thinkphp5.1 中 loader 的基本原理。不過,thinkphp 框架中,另外還增加了使用 psr0、psr4 規則來查詢類檔案,以及 composer 的自動載入。
<?phpspl_autoload_extensions(".php"); //
comma-separated list
spl_autoload_register();
?>
讓 php 自己去尋找檔案,據說要比上面指定檔名要快得多。
不過我猜,第一句讓 php 已經做了快取,所以,這種方式應該是拿記憶體換了速度。
php自動載入類,php自動載入的兩種實現方法
php自動載入的兩種實現方法,需要的朋友可以參考下。php自動載方法有兩種.第一種方案用 autoload,這個函式較簡單,也較弱.但有一問題沒有解決,就是在include前判斷檔案是否存在的問題.set include path aa path separator get include path...
php 載入 php自動載入方式
本篇文章介紹的內容是關於php自動載入方式,現在分享給大家,有需要的朋友可以參考一下這篇文章的內容 php載入檔案方式 1 include,include once,requice,requice one常規載入 2 autoload 3 spl autoload register 常規載入方式 假...
PHP反射API實現自動載入
php具有完整的反射 api,新增了對類 介面 函式 方法和擴充套件進行反向工程的能力。在這裡我們通過乙個簡單的應用來展示一下反射api的魅力。讓我們來看看如何利用反射api實現自動載入模組 首先定義乙個modules介面,不同模組實現不同的execute 功能。inte ce modules接下來...