自动加载类的好处

来源:互联网 发布:armani code 香水知乎 编辑:程序博客网 时间:2024/05/02 00:39

现有一个类:

UserModel.class.php

<?phpclass UserModel{public function login(){echo '登录<br/>';}public function logout(){echo '退出登录<br/>';}}?>


另一个PHP文件想要使用该类,需要把该类文件加载进来。

<?phprequire('./'.$property.'.class.php');<span style="white-space:pre"></span>$user = new UserModel();<span style="white-space:pre"></span>$user->login();?>

这样就可以输出“登录”了;


而当需要加载的文件很多时,写成千上百个require显得不现实,我们可以考虑下__autoload() 方法

<?phpfunction __autoload($property){require('./'.$property.'.class.php');}$user = new UserModel();$user->login();?>
这么做的好处是:
__autoload()实现了自动加载的功能,一个方法顶成千上百个require...

当实例化一个未声明的类的时候,系统自动调用__autoload()方法,把该类作为参数传进去,并require进改文件作为声明。

而且引进(require)过一次后,同样可以在生命周期内生效,避免再次实例化再次引进(require)。


当然,我们不一定要__autoload(),可以自己写一个方法,然后告诉系统这个方法是自动加载方法:

spl_autoload_register('方法名'); //告知系统

function 方法名(){ //用户自定义自动加载方法

require ....

}

还可以注册类的静态方法当自动加载函数。

0 0
原创粉丝点击