php __autoload()函数

688 查看

__autoload()函数简单点说,就是在php代码中实现自动加载/调用php的类。

__autoload()函数是php5的新 增内置函数,如果php代码在执行过程中遇到了未定义的类时,通过使用__autoload()函数便可以自动将该类加载进来并使用(当然,前提条件执行 到这里之前已经声明__autoload()函数了)。有些童靴可能要问,这是啥意思,简单点说就是,如果之前已经包含了__autoload()函数的 声明(function __autoload(){......}),而执行php代码的过程中遇到了未定义或未声明的类,那么php会自动调用__autoload()函数 (当然肯定是需要传参进来的,参数就是那个未定义的类),然后执行__autoload()函数内部的代码,而这个函数内部的代码无一例外的便是检测参数 (这个未定义的类)是否存在,如果存在便include或require进来。

//重写__autoload函数,它就像构造函数一样会在合适时机被自动调用

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}
?>

$obj = new MyClass1(); //此时,因为MyClass1类并未定义,则php会自动使用之前发现的autoload($class_name)类自动加载该类。