在一些公司裡,將各個類放在單獨的文件中是很常見的做法
require_once ("classes/Books.class.php") ;
require_once ("classes/Employees.class.php" ) ;
require_once ("classes/Events.class.php") ;
require_once ("classes/Patrons.class.php") ;
以這種方式管理類包含(class inclusion)會變得非常麻煩,並且會在本來已經很復雜的開發過程中再增加一個額外的步驟。為消除這個額外的任務,PHP5中引入了自動加載對象的概念.自動加載通過定義特殊的__autoload函數,當引用未在腳本中定義的類時會自動調用這個函數.回到圖書館的例子,通過定義如下函數,就不必再手工包含各個類文件了:
例子1:
function __autoload ($class) {
require_once ("classes/$class.class.php") ; //這樣就加載了classes文件夾下的全部php文件
}
例子2:
文件名:doo.php
class doo {
public function __construct() {
echo "2011";
}
}
class Example {
public function __construct() {
echo "hello";
}
}
文件名:test.php
function __autoload($class) {
include("$class.php");
}
$p=new doo();
print_r($p);
這裡須注意:1、被加載的文件名(如doo.php)裡面
定義這個函數後,將不再需要那些require_once ()語句,因為當第一次調用一個類時,就會調用__autoload(),並根據__autoload()中定義的命令加載類。這個函數可以放在某個全局應用程序配置文件中,它只是說該函數要在腳本中可用。