__autoload() 函數嘗試加載未定義的類
__autoload ( string $class );
你可以通過定義這個函數來啟用類的自動加載。
class - 必需。待加載的類名。
沒有返回值。
下面示例來說明__autoload 的使用方法,下面分別從 ClassA.php 和 ClassB.php 文件中加載 ClassA 和 ClassB 類
<?php
//定義一個類ClassA,文件名為ClassA.php
class ClassA{
public function __construct(){
echo "ClassA load success!";
}
}
?><?php
//定義一個類ClassB,文件名為ClassB.php,ClassB繼承ClassA
class ClassB extends ClassA {
public function __construct(){
echo "ClassB load success!";
}
}
?><?php
function __autoload($classname)
{
$classpath="./".$classname.'.php';
if(file_exists($classpath)){
require_once($classpath);
}
else{
echo 'class file'.$classpath.'not found!';
}
}
//ClassA類不存在時,自動調用__autoload()函數,傳入參數”ClassA”
$obj = new ClassA();
//ClassB類不存在時,自動調用__autoload()函數,傳入參數”ClassB”
$obj2 = new ClassB();
?>在 PHP 5 中,可以定義一個 __autoload()函數,它會在試圖使用尚未被定義的類時自動調用,通過調用此函數,腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類, __autoload() 函數接收的一個參數,就是你想加載的類的類名,所以你做項目時,在組織定義類的文件名時,需要按照一定的規(guī)則,最好以類名為中心,也可以加上統(tǒng)一的前綴或后綴形成文件名,比如 xxx_classname.php、classname_xxx.php以及就是classname.php等等。