不希望在每个页面中包含所有类定义,而希望只是动态加载这个页面中必要的类定义.
通常情况下,实例化一个未定义的类时,PHP会中止运行,指出一个致命错误,因为它无法找到你要的类。因此,一般会加载一个页面可能用到的所有类,而不论是否会真正调用这些类。
这就带来一个副作用,会增加处理时间,因为PHP必须解析每一个类,甚至包括未使用的类。一种解决方法是使用 autoload()方法动态加载缺少的代码,实例化未定义的类时会调用这个方法。
function __autoload($class_name){
include "$class_name.php";
}
$person = new Person;
__autoload()函数接收类名作为它的唯一参数。这个例子在这个类名后面追加一个.php扩展名,尝试根据$class_name包含一个文件。所以实例化一个新的Person时,它会在include_path中查找Person.php。
__autoload()未能成功地为你要实例化的对象加载一个类定义时,PHP会失败,并给出一个致命错误,就像未使用自动加载时无法找到一个类定义一样。