PHP类的自动加载

来源:互联网 发布:时间序列数据集下载 编辑:程序博客网 时间:2024/05/17 06:10

test.php:

class Test{        public $name;        //构造方法,实例化类的时候,自动调用,通常用来初始化对象        public function __construct($name = "hello"){//两个下划线            $this->name = $name;        }    }

引用:

//1.require或include导入一个类文件require("test.php");//include("test.php");echo (new Test("world"))->name;
//2.__autoload()当我们引入一个不存在的类时,自动调用它导入该类文件function __autoload($className){    $path = $className.'.php';    if(file_exists($path)){        require_once($path);    }else{        $path.'不存在,请检查~~';    }}echo (new Test("world"))->name;
//3.自定义导入函数,用spl_autoload_register()将自定义的类导入函数添加到函数栈中function loader($className){    $path = $className.'.php';    if(file_exists($path)){        require_once($path);    }else{        $path.'不存在,请检查~~';    }}spl_autoload_register('loader');echo (new Test("world"))->name;
//4.将自定义导入放到类里class LoaderClass{    function loader($className){        $path = $className.'.php';        if(file_exists($path)){            require_once($path);        }else{            $path.'不存在,请检查~~';        }    }}spl_autoload_register([(new LoaderClass),'loader']);echo (new Test("world"))->name;
//5静态方法class LoaderClass{    static function loader($className){        $path = $className.'.php';        if(file_exists($path)){            require_once($path);        }else{            $path.'不存在,请检查~~';        }    }}spl_autoload_register([('LoaderClass'),'loader']);echo (new Test("world"))->name;
原创粉丝点击