final class Util{
// 定义一个通用的装载方法
static function autoload($class_name){
// echo 'SPL load class:', $class_name, '<br />';
$fullpath = $_SERVER['CONTEXT_DOCUMENT_ROOT'].'/class/'.$class_name.'.class.php';
if ( file_exists($fullpath)){
// easy way 2 do, job as your own way
include_once $fullpath;
}
}
}
// 注册下
spl_autoload_register("Util::autoload");
由于PHP提供了默认的全局__autoload魔术方法,如果之前定义了__autoload的话,如:
function __autoload($classname){
// do something like include_once, require_once, etc
}
此时调用,spl_autoload_functions 会获得一个autoload的方法数组,__autoload赫然在列,上面的Util::autoload会紧随其后,其机制是会根据注册的顺序轮流执行,直到找到new的类为止。
这样的话,在调用new 生成对象时就会适当载入相关对象,如: