__autoload() 函數(shù)嘗試加載未定義的類
__autoload ( string $class );
你可以通過定義這個函數(shù)來啟用類的自動加載。
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類不存在時,自動調(diào)用__autoload()函數(shù),傳入?yún)?shù)”ClassA” $obj = new ClassA(); //ClassB類不存在時,自動調(diào)用__autoload()函數(shù),傳入?yún)?shù)”ClassB” $obj2 = new ClassB(); ?>
在 PHP 5 中,可以定義一個 __autoload()函數(shù),它會在試圖使用尚未被定義的類時自動調(diào)用,通過調(diào)用此函數(shù),腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類, __autoload() 函數(shù)接收的一個參數(shù),就是你想加載的類的類名,所以你做項目時,在組織定義類的文件名時,需要按照一定的規(guī)則,最好以類名為中心,也可以加上統(tǒng)一的前綴或后綴形成文件名,比如 xxx_classname.php、classname_xxx.php以及就是classname.php等等。